Я пытаюсь создать настройку ежемесячного резервного копирования. Так что, если кто-то запланировал какую-то конкретную дату, то она должна выполняться ежемесячно в тот же день.
Если я запланировал резервное копирование на 31 декабря 2018 года, я хочу, чтобы оно выполнялось в одну и ту же дату каждого месяца. В январе получит 31. Это выполнено, но в феврале, что мы можем сделать, это вызывает исключение, потому что 31 не присутствует в этом месяце.
И что мы можем сделать для других месяцев и как мы получаем следующую дату резервной копии?
Я попытался с помощью свойства DateTime.Day сначала получить запланированный день резервного копирования, а затем получить текущий день этого месяца и сравнить оба, если текущий день больше уже запланированного дня, а затем добавить один месяц в текущий день. это будет следующий резервный месяц, в противном случае следующее резервное копирование произойдет в текущем месяце.
DateTime scheduledDate = new DateTime(2019,1,31);
DateTime currentDate = DateTime.Now;
NextBackupdate = currentDate;
int scDay = scheduledDate.Day;
int cDay = currentDate.Day;
if(cDay > scDay)
{
NextBackupdate = NextBackupdate.AddMonths(1);
}
В этом случае мы можем получить следующий месяц, но как мы можем получить день.