计算一周中某一天的日期

时间:2008-11-12 19:45:21

标签: algorithm tsql datetime pseudocode

鉴于一周工作日(1-7),我如何计算该工作日的最后日期是什么?

示例:今天星期三,2008年11月12日,我想知道最后星期五的日期是什么。

2 个答案:

答案 0 :(得分:4)

一般情况下?请参阅Calendrical Calculations

在前一周内这个较窄的案例中?找出天数的差异(星期五= 5,星期三= 3)。查找周数差异(上周= -7天)。如果您在天数+周内找到了偏移量,请将该偏移量应用于日历日期。

答案 1 :(得分:1)

如果today是一周中的当前日期,那么您可以使用以下内容:

days_since_friday = (((today - 1) + 7) - (6 - 1)) % 7

这假定星期五由星期的第6天表示(即1代表星期日)。然后从当前日期中减去days_since_friday,您将获得上周结束的日期。

上面的表达比它需要的稍微复杂一些。如果您的星期几从星期日的0开始,则简化为:

days_since_friday = ((today + 7) - 5) % 7

days_since_friday = (today + 2) % 7