Итак, у меня есть только CreateDate для работы.DateTime - Определить юбилей (ежемесячный юбилей)
У меня есть запланированная задача, которая выполняется каждый день в 12 часов ночи, и для этого нужно получить все записи, которые выпадают в тот же день месяца (но не в случае, если CreateDate == DateTime.Now).
Я бы предпочел, чтобы это было в LINQ, поскольку это вызов базы данных, но я думаю, что любой логики итерации будет достаточным.
У меня есть это прямо сейчас, но это имеет проблемы с дней выше, чем 28:
var results = Context.Subscriptions.Where(
x => !(x.StartDate.Day == DateTime.Now.Day &&
x.StartDate.Month == DateTime.Now.Month &&
x.StartDate.Year == DateTime.Now.Year) &&
x.StartDate.Day == DateTime.Now.Day);
Обновление вопрос для ясности:
Например, созданная дата записи, то есть 31 января 2013 г. Эта запись следует вытаскивать каждый месяц. Но так как не все месяцы имеют 31 день, мой код выше не будет работать в те месяцы. Мне все равно нужно снимать запись каждый месяц, даже если в этом месяце нет 31-го.
Как далеко вы дошли? Приложите все усилия и, как вы думаете, лучший способ решить проблему. – dcaswell
Итак, записи на 31-м вытаскиваются только за 7 из 12 месяцев? Когда их нужно потянуть? –
Добавлено, что у меня есть сейчас. Пока, если начальный день выпадет в 29, 30 или 31, они не будут тянуться каждый месяц. Думаю, их на следующий день вытащить? Так, например, если дата создания записи приходится на 31-й, а текущий месяц имеет только 30 дней, запись должна быть вытащена в следующем месяце на 1-й. Если это не лучшее решение, я очень открыт для других ответов. – vsebastian