【问题标题】:Calculating Weekly Rotating Schedule计算每周轮换时间表
【发布时间】:2011-09-10 05:26:00
【问题描述】:

好的,我不知道如何解决这个问题...我正在使用开源 CMS (Umbraco),并希望创建一个每三周轮换一次内容的宏。所以基本上我有三个文件,我想根据给定的开始日期每周显示文件 1、2 或 3(总共三周轮换)......有什么建议吗?我很讨厌在 C# 中处理日期!

除了给定开始日期的第 1、2 或 3 周返回 C# 函数外,我不需要任何特定代码...

【问题讨论】:

    标签: c# .net asp.net


    【解决方案1】:

    这很有效,但如果您总是希望星期从给定的一天(例如星期日)开始,您可能需要调整它。

            DateTime startDate = new DateTime(2011, 1, 1).Date;
            DateTime now = DateTime.Now.Date;
            int days = (int)now.Subtract(startDate).TotalDays;
            int weeks = days / 7;
            Console.WriteLine((weeks % 3) + 1);
    

    【讨论】:

      【解决方案2】:
      DateTime begin = new DateTime(2011, 03, 07);
      TimeSpan timeSpan = DateTime.Now - begin;
      switch (((int) timeSpan.TotalDays / 7) % 3)
      {
          case 0:
              break;
          case 1:
              break;
          case 2:
              break;
          default:
              throw new Exception();
      }
      

      第一个“/ 7”给出周数,“% 3”告诉你是在第 1、第 2 还是第 3。

      【讨论】:

      • 啊!我以为你必须以某种方式使用 mod 函数,但老实说,我对数学函数的了解为零。 ;-) 不过,我会尝试一下。感谢您的想法!
      • 是的,这似乎不起作用...给定开始日期 5/30/11 和结束日期 6/12/11(通过我设置的变量),它返回0 当它应该返回 1。
      • 原因想一想... 7 % 7 返回 0。14 % 7 返回 0。21 % 7 返回 0,等等...
      • 大声笑,是的,这是我的错。我想写 / 7,但我已经在考虑 %3 部分了。我会编辑帖子,只是为了不误导任何人。 :-P
      猜你喜欢
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 2021-12-05
      • 2023-04-10
      相关资源
      最近更新 更多