小时间隔基于24时钟

时间:2012-02-25 18:58:01

标签: c#

我试图从开始时间算出一个小时的间隔......

因此,如果我允许用​​户选择1到12之间的值,我想知道24小时制中代表的时间。

让我们说它是上午9点,他们希望在那一天每4小时收到一次通知。我需要它具有以下值:

上午09点 下午1点 下午5点 下午9点

我正在尝试使用%(模数),但我没有得到我期望的结果(4 % 24)......有什么想法吗?

4 个答案:

答案 0 :(得分:3)

  • 创建一个代表当前时间(上午9:00)的DateTime
  • 创建表示时间间隔(4小时)的TimeSpan
  • 使用DateTime.Add(TimeSpan)方法生成下一个通知的时间

12/24小时时钟根本不会播放:您可以在下次您或您的用户希望的时候格式化 - 使用{{1}作为24小时制使用"HH:mm"掩码进行掩码或12小时制。

答案 1 :(得分:0)

这是一个简短的代码示例,可帮助您入门:

int hour = 9;

for (; hour <= 24; hour += 4)
   Console.WriteLine("Hour = " + hour % 12);

请注意使用hour % 12

答案 2 :(得分:0)

即兴创作...使用%运算符。由于%得到的值小于实际时间(上午9:00),您知道需要在PM中更改AM ...每次结果小于实际时间时,您必须更改AM / PM,反之亦然。

答案 3 :(得分:0)

    int interval = 4;
    int current = 9;
    for(int i = current; i <= 24; i+=interval)
    {
        Console.WriteLine(i%12 + (i > 12 ? "PM" : "AM"));
    }