gpt4 book ai didi

c++ - 获取一年中的星期几开始于

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:19 28 4
gpt4 key购买 nike

我正在用 C++ 编写一个函数,以在给定日期、月份和年份(从 1900 年开始)的情况下获取星期几。我必须这样做的方式(我服从命令,这是一个练习)是对过去的总天数取 7 的模数。

例如,2018 年 11 月 21 日将是该年的第 325 天(考虑闰年)。星期几将为 325 % 7,这将给出 0 到 6 之间的数字,0 表示星期日,1 表示星期一,依此类推,直到 6 表示星期六。

但这只适用于从星期一开始的年份。 2018 年有效,但 2019 年将从星期二开始,因此将休息 1 天。

我解决这个问题的想法是知道那一年从哪一天开始并将它添加到给定的 0-6 数字(如果它高于 6 则修复它),但我必须使用前一年的函数, 这将一直持续到它达到 1900,这将被设置为星期一。这听起来很糟糕,我想不出另一种方法。

提前致谢

最佳答案

如果您不想使用任何库并纯粹通过计算来完成,这里有一个解决方案。

http://mathforum.org/dr.math/faq/faq.calendar.html (网络存档页面)

或一个简单的解释video .

您可以做的是将此逻辑转换到您的程序中并找出星期几。

int dayofweek(int d, int m, int y) 
{
static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
y -= m < 3;
return ( y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}

Code Source.

关于c++ - 获取一年中的星期几开始于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53155109/

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