gpt4 book ai didi

c++ - 解释这个闰年函数C++

转载 作者:行者123 更新时间:2023-11-30 03:54:13 25 4
gpt4 key购买 nike

我对这段代码有疑问,我不明白这个函数是如何工作的。我需要验证用户的输入,看看他们放置的日期是否有效。如果不是,我会设置错误代码。所以在我的读取函数中,我 cin 日期然后验证输入并调用 mdays() 但是,出于某种原因我不知道如何检查我的 if 语句如果日期有效,则读取函数。

int Date::mdays() const
{
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, -1};
int mon = _mon >= 1 && _mon <= 12 ? _mon : 13;
mon--;
return days[mon] + int((mon == 1)*((_year % 4 == 0) &&
(_year % 100 != 0)) || (_year % 400 == 0));
}

最佳答案

代码非常聪明,是想证明自己聪明的人写的。我讨厌聪明的代码。 (它也很慢,我讨厌试图变得聪明但失败的代码)。

记住闰年的规则:

每四年为闰年。除了每 100 年不是闰年。除了每 400 年是一个闰年。

除了二月有 28 天或 29 天,您可以从表格中查找大多数月份。所以要理解代码,如果月份不是二月会怎样?如果这个月是二月会怎样? mon 将等于 1。二月份 (mon == 1) 的值是多少?你会如何表达闰年的规则?

您展示的函数计算一个月中的天数,它不进行任何验证。显然你需要知道 April 有 30 天才能知道 4 月 31 日无效。

关于c++ - 解释这个闰年函数C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720184/

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