使用C ++的程序,使用2020年10月4日为星期日这一事实来确定每年的星期几

时间:2020-10-11 09:36:07

标签: c++ date

我必须用C ++编写一个程序,该程序使用以下事实:2020年10月4日为星期日,并确定1/1/1900到31/12/2500之间任何给定日期的日期。 我不知道从哪里开始。 我应该使用什么方法? 我不能使用任何外部库OOP,结构或枚举。 我只想知道逻辑。

1 个答案:

答案 0 :(得分:3)

您在这里采用的方法非常简单,只涉及一些数学(模运算)。

将开始日期视为第0天。以天数为单位获取该日期。 Here's a tutorial on date and time in C++(以日期为单位输入日期)

获取输入的日期与第0天之间的天数差: dateDiff = inputDateInDays - day0(请保留该数字的符号)

现在将day0 mod 7视为星期日。假设day0 mod 7 = 0这样 dateDiff mod 7 = dayOfTheWeek,其中1是星期一,2是星期二,直到6是星期六。就是这样。

TL; DR(伪代码):

day0 = // Your original date in number of days
dateInput = // Your input date
dayInput = // Convert dateInput into number of days
dateDiff = dayInput - dayInput

// 0 <= dateDiff % 7 <= 6. So figure which number corresponds to which day.
return dateDiff % 7