万年历学习笔记


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();

}

}

}


}