Вопрос

Есть ли способ сделать напоминание к дню недели? Например, если я хочу напоминание каждую пятницу в 10 утра.

Как лучше всего выполнить эту задачу?

Я думаю, что я слишком много думал о расчете часов. Я надеюсь, что есть более упрощенный способ сделать то, что я хочу сделать.

Обновлять:

Мой вопрос больше о том, как выяснить, как установить напоминание на определенный день, даже если это не сегодня. Итак, скажем сегодня в среду, и я хочу напоминать на каждую пятницу (или в любой день недели) ... как бы я это сделал?

Это было полезно?

Решение

Поскольку напоминание нуждается в DateTime, это довольно просто. Каждое приложение имеет максимум 50 напоминаний:

DateTime dateTime = DateTime.Now; //First Friday at 10am
for (int i = 0; i < 50; i++)
{
    Reminder reminder = new Reminder("MyReminder")
    reminder.Content = "Reminder";
    reminder.BeginTime = dateTime.AddDays(i * 7);

    ScheduledActionService.Add(reminder);
}

-или это может работать-

Reminder reminder = new Reminder("MyReminder")
reminder.Content = "Reminder";
reminder.BeginTime = DateTime.Now; //First Friday at 10am
reminder.Content = "Reminder";
reminder.ExpirationTime = DateTime.Now.AddDays(52 * 7);
reminder.RecurrenceType = RecurrenceInterval.Weekly; 

ScheduledActionService.Add(reminder);

РЕДАКТИРОВАТЬ

Вот как ты получаешь следующее день недели

private DateTime GetNextDay(string dayOfWeek)
{
    for (int i = 0; i < 7; i++)
    {
        DateTime currentDateTime = DateTime.Now.AddDays(i);
        if (dayOfWeek.Equals(currentDateTime.ToString("dddd")))
            return currentDateTime;
    }

    return DateTime.Now;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top