【发布时间】:2021-01-01 21:16:07
【问题描述】:
是否有一种算法可以用日期(日和月,无年份)查找一周中的某一天(星期日、星期一等),同时仅使用一年的开始日(1.1 将是:周日、周一...)?
【问题讨论】:
-
您需要知道年份才能准确找到 2 月 28 日之后的任何一天。
-
给定 M 月和 D 日,将 M 之前所有月份的天数相加。然后添加
D-1以获取自 1 月 1 日以来的总天数。然后计算total%7 + 1并得到星期几,其中 1=Sun,2=Mon,等等。例如,给定 3 月 10 日,我们有sum=31+28和total=sum+10-1=68。所以weekday=68%7+1=6这是星期五。查看 2023 年的日历,您会发现 1 月 6 日和 3 月 10 日都是星期五。 (注意:正如 Mark 已经提到的,将前几个月的天数相加是有问题的,因为 2 月有 28 天或 29 天,具体取决于年份。) -
你能同意谁让你这样做吗,今年的第一天 (1.1) 是 3 月 1 日?否则,不。
标签: c