万年历学习笔记
import java.util.Scanner;
public class Test1demo {
//判断是否是闰年
public static boolean isRun(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
return true;
}
else
{
return false;
}
}
//判断年份和月份,还回该月的总天数
public static int getMonthDays(int year,int month) {
int days = 31;
switch (month) {
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if(isRun(year))
{
days = 29;
}
else {
days = 28;
}
break;
}
return days;
}
//计算给定年份和月份,计算这个月与第一天1900.1.1过了多少天
public static int getTotalDays(int year, int month)
{
int totalDays = 0;
for (int i = 1900; i < year; i++) {
if(isRun(year))
{
totalDays += 366;
}
else
{
totalDays += 365;
}
}
for(int i = 1; i < month ; i++)
{
totalDays += getMonthDays(year, i);
}
return totalDays;
}
public static void main(String[] args) {
int year;
int month;
int day; // 这个月
int totalDays; //这个月第一天与1900.1.1有多少天
int iCount = 0 ;// 计数器,用来决定是否换行
int monthDays ; // 表示该月数
Scanner in = new Scanner(System.in);
System.out.println("*************欢迎使用万年历***********");
System.out.println("请输入年份");
year = in.nextInt();
System.out.println("请输入月份");
month = in.nextInt();
System.out.println("你输入的年月是:" +year+"年"+month+"月");
if (isRun(year))
{
System.out.println(year+"年"+"是闰年");
}
else
{
System.out.println(year+"年"+"是平年");
}
monthDays = getMonthDays(year, month); //获得月总天数
totalDays = getTotalDays(year, month); //获得年总天数
totalDays++; // 获得多少天
day = totalDays%7; //得到星期几
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
for(int i = 0; i < day; i++)
{
System.out.print("\t");
iCount++;
}
for(int i = 1; i <= monthDays; i++)
{
System.out.print(i+"\t");
iCount++;
if (iCount %7 == 0) {
System.out.println();
}
}
}
}