【问题标题】:Calculating date for a day of the week计算一周中某一天的日期
【发布时间】:2010-09-22 01:19:52
【问题描述】:

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

示例:今天是星期三,2008/11/12,我想知道上一个星期五是什么日子。

【问题讨论】:

    标签: algorithm tsql datetime pseudocode


    【解决方案1】:

    一般?见Calendrical Calculations

    在这个较窄的情况下,在前一周内?找出天数的差异(星期五 = 5,星期三 = 3)。以周为单位查找差异(上周 = -7 天)。当您找到以天+周为单位的偏移量后,将该偏移量应用于日历日期。

    【讨论】:

      【解决方案2】:

      如果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
      

      【讨论】:

      • “今天”是星期几还是一个月中的哪一天?
      • “今天”是一周中的今天。
      猜你喜欢
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多