Правильный способ расчета повторяющихся дат в C#C#

Место общения программистов C#
Ответить
Anonymous
 Правильный способ расчета повторяющихся дат в C#

Сообщение Anonymous »

В моем проекте мне нужно рассчитать даты повторяющихся событий. Вначале у меня есть только дата/время начала и информация о том, как это событие должно повторяться:

Код: Выделить всё

Every Day
Every Week
Every 2 Weeks
Every 3 Weeks
Every Month
Every 2 Months
...
Как правильно это сделать? Он должен корректно работать с различными часовыми поясами и настройками перехода на летнее время. Я думаю, мне следует просто добавить дни/недели/месяц к локальному значению DateTime, а затем преобразовать его в UTC. Но я не уверен в этом. Что произойдет, если я добавлю несколько дней, и это будет время, когда нам нужно будет перевести наши часы на один час вперед. В этом случае этого времени не будет.

Ниже приведен код, который я написал, но я не уверен, что он работает правильно в каждом случае:

Код: Выделить всё

private static List FindOccurrences(DateTime localStart, Repeat repeat, int occurrences)
{
var result = new List { localStart };
switch (repeat)
{
case Repeat.Daily:
for (int i = 1; i 

Подробнее здесь: [url]https://stackoverflow.com/questions/26362838/correct-way-to-calculate-recurring-dates-in-c-sharp[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»