日期的计算
经常会被问到几月几日是周几的情况,如果不查日历,如何快速用程序计算出来,一种简单的方法是,记住很久以前的某一天是星期几,比如公元1年1月1日是星期一,然后一天一天模拟,算出日期是星期几。
这种方法容易理解,但是代码实现起来会比较长,除此之外可以通过公式快速根据日期计算这一天是星期几,网上有很多计算日期的公式,下面介绍一种相对靠谱的公式,被称为蔡基姆拉尔森计算公式
假设星期为w,年份为y,月份为m,日期为d
w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7
然后把计算出来的w加上1就是真正的星期几了
注意每年的1、2月要当成上一年13、14月计算,伤处的除法均为整除
输入年月日计算星期几的程序如下:
package 计蒜客; import java.util.*; class Main { static String[] weekday = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; static int whatday(int y, int m, int d) { // 返回正确的星期。用 0 - 6 表示 星期 1 - 7 if(m==1||m==2){ m=m+12; y=y-1; } int w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; return w; } public static void main(String[] args) { Scanner cin = new Scanner(System.in); int y = cin.nextInt(); int m = cin.nextInt(); int d = cin.nextInt(); System.out.println(weekday[whatday(y, m, d)]); } }