【发布时间】:2010-09-22 01:19:52
【问题描述】:
给定一个工作日 (1-7),我如何计算该工作日的最后日期是什么?
示例:今天是星期三,2008/11/12,我想知道上一个星期五是什么日子。
【问题讨论】:
标签: algorithm tsql datetime pseudocode
给定一个工作日 (1-7),我如何计算该工作日的最后日期是什么?
示例:今天是星期三,2008/11/12,我想知道上一个星期五是什么日子。
【问题讨论】:
标签: algorithm tsql datetime pseudocode
在这个较窄的情况下,在前一周内?找出天数的差异(星期五 = 5,星期三 = 3)。以周为单位查找差异(上周 = -7 天)。当您找到以天+周为单位的偏移量后,将该偏移量应用于日历日期。
【讨论】:
如果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
【讨论】: