Zeller‘s Congruence:
w=y + [y/4] + [c/4] - 2c + [26(m+1)/10] + d - 1
公式中的符号含义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c: 世纪数-1(四位数年份的前两位数)
y: 年
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[ ]代表取整,即只要整数部分。
public static int daysOfWeek(int year, int month, int day) { if (month < 3) { month += 12; year -= 1; } int c = year / 100; int y = year % 100; int w = (y + (y / 4) + (c / 4) - (2 * c) + ((26 * (month + 1)) / 10) + day - 1) % 7; return w; }
时间: 2024-10-12 13:06:10