【问题标题】:How to calculate week number as starting day Friday or Saturday?如何将周数计算为周五或周六的开始日?
【发布时间】:2014-01-08 10:16:11
【问题描述】:

我想以“星期六”或“星期五”作为一年的开始日期来计算周数。给出了年、月和日。有一种算法称为"DoomsDay algorithm",它以星期一为起始日计算周数。

但我没有找到任何用于“星期六”或“星期五”开始日期的算法。

【问题讨论】:

  • 我想一些模 7 算术会起作用。
  • 你已经标记了这个问题 C++,我很确定那里有 Date 类可以给你任何给定日期的 DoW,无论是数字还是字符串,在那之后,它只是 DoW 的 int 表示的模数 + 1 代表星期日,2 代表星期六,3 代表星期五等等。就可以了
  • 您可以轻松地从周一到周六或周五重新计算
  • 只是,在 JS 中,因为写起来更短,你可以在这里在控制台中测试它:d = [0,1,2,3,4,5,6] 是一个数字 DoW 的数组(0 == 星期一,5 == 星期六) ,重新计算它们在一行中for(i=0;i<d.length;++i) console.log(d[i] + ' -> ' + (2+(d[i]))%7);

标签: c++ c


【解决方案1】:

实际上该算法从 0 开始作为星期日(C 和 C++ 从零开始计数)。

该算法为世纪添加了一个“锚定日”。这只是让一周中的日子正确排列的一个软糖因素。如果在这一步之后(以及在进行除法和取模之前)从总数中减去 1 或 2,则答案将向前旋转,现在 0=星期六(减 1)或星期五(减 2)等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多