2012-02-25 2 views
2

Я пытаюсь понять часовой интервал от времени начала ...часового интервала на основе офф 24 часов

Так что, если я позволить пользователю выбрать значение между 1 и 12, я хочу, чтобы выяснить, какие времена представляют собой 24-часовые часы.

Допустим, что в 9:00 и они хотят получать уведомления каждые 4 часа в течение этого дня. Я бы это нужно иметь следующие значения:

9AM 1 вечера 5 вечера 9 вечера

Я пытаюсь использовать% (модуль), но я не получаю то, что я ожидал (4 % 24) ... Есть идеи?

ответ

3
  • Создать DateTime представляющий текущее время (9:00 утра)
  • Создание TimeSpan, представляющий интервал времени (4 часа)
  • Используйте DateTime.Add(TimeSpan) метод для получения времени следующего уведомления

Часы 12/24 часа не играют в этом вообще: вы можете формат в следующий раз, как вы или ваш пользователь пожелаете - в качестве 24-часового часа, используя "HH:mm" м спросите или как 12-часовой часы, используя "hh:mm" маска.

0

Вот короткий пример кода, чтобы вы начали:

int hour = 9; 

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

Обратите внимание на использование hour % 12.

0

Импровизация ... Используйте оператор%. Поскольку% получает значение меньше фактического времени (9:00 AM), вы знаете, что вам нужно изменить AM в PM ... каждый раз, когда результат меньше фактического времени, вам нужно изменить AM/PM или наоборот.

0
int interval = 4; 
    int current = 9; 
    for(int i = current; i <= 24; i+=interval) 
    { 
     Console.WriteLine(i%12 + (i > 12 ? "PM" : "AM")); 
    } 
Смежные вопросы