`

随便给你一个日期(例如2010-1-15),问这一天是否是“星期六”?

阅读更多

随便给你一个日期(例如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);
	}
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics