任务:需要获得一周中的日期和日期的公历日历(可以是2009年,935年,第2期,342年BP和任何日期时间轴)。
无法在任何地方找到数学模型。 也许以前有人遇到过这个问题?
P.S。实施语言并不重要
答案 0 :(得分:2)
如果将1月和2月视为上一年的最后两个月,则工作日与3月初相差⌊(13m-1)/ 5)⌋天;调整闰年和闰年计算星期几:
function weekday(ccyy, mm, dd) # zeller's congruence
days := ["Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur"]
if mm < 3 then mm, ccyy := mm + 10, ccyy - 1 else mm := mm - 2
cc, yy := ccyy // 100, ccyy % 100
day := (dd + (13 * mm - 1) // 5 + yy + yy // 4 + cc // 4 - 2 * cc) % 7
return days[day] || "day"
在采用公历之前的日期略有不同。