任务:需要从公历的日期和日期(可以是2009,935,2,342 BP和任何时间轴上的日期)获取一周中的一天。
任何地方都找不到数学模型。也许以前有人遇到过这个问题?
P.S.实现语言并不重要
发布于 2015-01-26 15:57:38
如果将1月和2月视为前一年的最后两个月,则工作日与3月初的⌊(13m-1)⌋日不同;调整闰年和闰年计算一周的日期:
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"在通过公历之前的日期,这种情况略有不同。
https://stackoverflow.com/questions/28152828
复制相似问题