import java.util.Scanner;
public class Calendar {
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();
System.out.println("请输入日期:");
int day = input.nextInt();
int count=(year-1-1984)/4;//这些年之间闰年的个数
if(((year % 400 == 0)|| (year % 4 == 0 &year%100!=0))&month>2){//如果查询的日期刚好是闰年且过了2月,则要加上多出的一天
count++;
}
int days=(year-1984)*365+count;
switch (month) {
case 1:
days+=day;
break;
case 2:
days+=(day+31);
break;
case 3:
days+=(day+59);
break;
case 4:
days+=(day+90);
break;
case 5:
days+=(day+120);
break;
case 6:
days+=(day+151);
break;
case 7:
days+=(day+181);
break;
case 8:
days+=(day+212);
break;
case 9:
days+=(day+243);
break;
case 10:
days+=(day+273);
break;
case 11:
days+=(day+304);
break;
case 12:
days+=(day+334);
break;
default:
break;
}
//若查询年份刚好是闰年且月份大于2,则要加多一天
if(((year % 400 == 0)|| (year % 4 == 0 &year%100!=0))&month>2){//测试时不要超过100年,即2084年
days+=1;
}
int dayinweek=(days-1)%7;//因为假如日期就是84年1月1日星期日,则。。。所以要减去一天做微调
System.out.print(year+"年"+month+"月"+day+"日是");
switch (dayinweek) {
case 0:
System.out.println("星期日");
break;
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
default:
break;
}
}
}
------解决思路----------------------
import java.util.Scanner;
public class Calendar {
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();
System.out.println("请输入日期:");
int day = input.nextInt();
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(year, month - 1, day);
int dayOfWeek = cal.get(java.util.Calendar.DAY_OF_WEEK);
String date = null;
switch(dayOfWeek) {
case java.util.Calendar.MONDAY:
date = "星期一";
break;
case java.util.Calendar.TUESDAY:
date = "星期二";
break;
case java.util.Calendar.WEDNESDAY:
date = "星期三";
break;
case java.util.Calendar.THURSDAY:
date = "星期四";
break;
case java.util.Calendar.FRIDAY:
date = "星期五";
break;
case java.util.Calendar.SATURDAY:
date = "星期六";
break;
case java.util.Calendar.SUNDAY:
date = "星期日";
break;
}
System.out.println(date);
}
}