import java.util.Scanner;
//1.输出提示语句,接受用户输入的年月.
public class HomeWork {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个年份");
int year = input.nextInt();
System.out.println("请输入一个月份");
int month = input.nextInt();
outPut(year, month);
}
//2.判断用户输入的年份,判断是否是闰年.
public static boolean isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true;
} else {
return false;
}
}
//3.根据用户输入的月份来判断月的天数.
public static int month(int month, int year) {
int day = 0;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
day = 31;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = 30;
} else if (month == 2) {
if (isLeapYear(year)) {
day = 29;
} else {
day = 28;
}
}
return day;
}
//4.用循环计算用户输入的年份距离1900年1月1日的总天数.
public static int yearDay(int year) {
int yearday = 0;
for (int i = 1900; i < year; i++) {
if (isLeapYear(i)) {
yearday = yearday + 366;
} else {
yearday = yearday + 365;
}
}
return yearday;
}
//5.用循环计算用户输入的月份距输入的年份的1月1日共有多少天.
public static int monthDay(int month, int year) {
int monthday = 0;
for (int n = 1; n < month; n++) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
monthday = monthday + 31;
}
if (month == 4 || month == 6 || month == 9 || month == 11) {
monthday = monthday + 30;
}
if (month == 2) {
if (isLeapYear(year)) {
monthday = monthday + 29;
} else {
monthday = monthday + 28;
}
}
}
return monthday;
}
//6.相加第四步与第五步的天数,得到总天数.
public static int sumDays(int month, int year) {
int yearday = yearDay(year);
int monthday = monthDay(month, year);
int sum = yearday + monthday;
return sum;
}
//7.用(总天数+1)%7来计算输入的月的第一天的星期数.
public static int week(int month, int year) {
int week = (sumDays(month, year) + 1) % 7;
return week;
}
//8.据第七步得到的值,格式化输出这个月的日历.
试试java的calendar类