gpt4 book ai didi

c++ - 如何在 C++ 中递增 Date 对象

转载 作者:行者123 更新时间:2023-11-30 04:37:36 27 4
gpt4 key购买 nike

我有一个我一直在处理的受让人,但我被困在最后一个功能上。

使用函数 void Increment(int numDays = 1)

此函数应将日期向前移动参数中给定的日历天数。参数的默认值为 1 天。示例:

Date d1(10, 31, 1998); // Oct 31, 1998
Date d2(6, 29, 1950); // June 29, 1950

d1.Increment(); // d1 is now Nov 1, 1998
d2.Increment(5); // d2 is now July 4, 1950

我不知道该怎么做。

void Date::Increment(int numDays = 1)

我卡住了,我知道如何通过++ 运算符告诉函数递增,但是当我必须让函数将一个月的最后一天递增到第一天或结束时,我感到困惑例如,在那个月的最后一天。 10 月 31 日至 11 月 1 日,或 6 月 29 日至 7 月 4 日。我可以选择 7 月 5 日至 7 月 8 日,但不断变化的月份让我感到困惑

最佳答案

您需要存储每个月有多少天的列表(或数组)。如果您将 numDays 添加到当前日期并且它变得比这更大,则您还需要增加月份。

例如,我们有一个表示 2010 年 3 月 29 日的日期对象。我们调用 Increment(4) 并将 4 添加到 day 变量,以 2010 年 3 月 33 日结束。我们现在检查有多少天March 有并发现它是 31(例如 daysInMonth[3] == 31)。由于 33 大于 31,我们需要从 33 中减去 31 并增加月份,最后得到 2010 年 4 月 2 日。

对于闰年的 2 月(任何可以被 4 整除且不能被 100 整除的年份,除非它也可以被 400 整除)和递增到 12 月底之后,您将需要特殊处理。

关于c++ - 如何在 C++ 中递增 Date 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756546/

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