获取星期几

时间:2015-01-26 15:08:34

标签: math calendar gregorian-calendar

任务:需要获得一周中的日期和日期的公历日历(可以是2009年,935年,第2期,342年BP和任何日期时间轴)。

无法在任何地方找到数学模型。 也许以前有人遇到过这个问题?

P.S。实施语言并不重要

1 个答案:

答案 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"

在采用公历之前的日期略有不同。