1 题目要求:
2 代码:
package love;
import java.util.*;
public class demo03 {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
int y = scan.nextInt();
int m = scan.nextInt();
if(judgeLeapYear(y)) {
System.out.println("输入的年是闰年");
}
else {
System.out.println("输入的年不是闰年");
}
System.out.println("输入的月份的天数是:" + searchMonthDay(y, m));
int sum1 = 0;
for(int i = 1900; i < y; i++) {
sum1 += searchYearDay(i);
}
System.out.println("输入的年份距1900年1月1日的总天数是:" + sum1);
int sum2 = 0;
for(int i = 1; i < m; i++) {
sum2 += searchMonthDay(y, i);
}
System.out.println("输入的月份距输入的年份的1月1日的总天数是:" + sum2);
int sum = sum1 + sum2;
System.out.println("输入月的第一天的星期数是:" + searchWeekX(sum%7));
System.out.println("星期日 星期一 星期二 星期三 星期四 星期五 星期六");
int cnt = searchWeekX(sum%7);
if(cnt < 7) {
for(int i = 0; i < cnt; i++) {
System.out.printf(" ");
}
}
for(int i = 1; i <= searchMonthDay(y, m); i++) {
System.out.printf("%-2d ", i);
if((cnt+i)%7 == 0) {
System.out.println();
}
}
if(cnt+searchMonthDay(y, m)%7 != 0) {
System.out.println();
}
}
}
public static boolean judgeLeapYear(int x) {
if((x%4 == 0 && x%100 != 0) || (x%400 == 0)) {
return true;
}
else {
return false;
}
}
public static int searchMonthDay(int y, int m) {
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
return 31;
}
else if(m == 2) {
if(judgeLeapYear(y)) {
return 29;
}
else {
return 28;
}
}
else {
return 30;
}
}
public static int searchYearDay(int y) {
if(judgeLeapYear(y)) {
return 366;
}
else {
return 365;
}
}
public static int searchWeekX(int x) {
return x+1;
}
}
3 演示截图: