gpt4 book ai didi

c++ - Tomohiko Sakamoto 的算法如何找到星期几?

转载 作者:搜寻专家 更新时间:2023-10-31 01:38:02 24 4
gpt4 key购买 nike

下面的算法是如何工作的?

enum DayOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};

static DayOfWeek GetDayOfWeek(unsigned int year, char month, char day) {
char monthTable[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };

year -= (unsigned int)((month < 3) ? 1 : 0);

return (DayOfWeek)((year + year / 4 - year / 100 + year / 400 + monthTable[month - 1] + day) % 7);
}

来源是here

谁能解释一下它为什么起作用以及如何起作用?

最佳答案

基本上 t[] 保存每个月的偏移量(相对于 1 月 1 日),而 /4 /100 /400 表示闰年和双闰年。

您可以在此处找到有关此特定算法的非常详细的解释:https://www.quora.com/How-does-Tomohiko-Sakamotos-Algorithm-work

关于c++ - Tomohiko Sakamoto 的算法如何找到星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com