随便给你一个日期(例如2010-1-15),问这一天是否是“星期六”?
两种方法,可以求任意星期几...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class DayOfWeek {
// 第一种方法
// private static void getWeek(int a,int b,int c){
// Calendar cal = Calendar.getInstance();
// cal.set(a, b-1, c);
// int day = cal.get(cal.DAY_OF_WEEK);
// if(day == 0){
// System.out.println("今天是星期日");
// }else{
// System.out.println("今天是星期"+(day-1));
// }
// }
// 第二种方法
private static void getWeek(int a,int b,int c){
int[] month = {0,31,28,31,30,31,30,31,31,30,31,30,31};;
if(a%400 == 0 || (a%4 == 0 && a%100 != 0)){
month[2] = 29;
}
//以公元0年为基准,看过了多少年。
//1.每一年按365天算。
//2.做调整,看经过了多少闰年。按闰年的规律做相应的调整。
int days = a*365 + (a-1)/4-(a-1)/100+(a-1)/400;
for(int i=0;i<b;i++){
days += month[i];
}
days += c+6;//因为0年1月1日是星期六
int t = days%7;
if(t == 0)
System.out.println("今天是星期日");
else{
System.out.println("今天是星期"+days%7);
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] s = str.split("-");
int a = Integer.parseInt(s[0]);
int b = Integer.parseInt(s[1]);
int c = Integer.parseInt(s[2]);
getWeek(a,b,c);
}
}