Я успадкував архівну програму, написану на C #. Попередній розробник цікавився лише архівуванням даних попереднього місяця. Однак деякі місяці були пропущені, і моїм завданням було додати функціональність, щоб побачити, які інші місяці були пропущені.
Частина, на яку я застрягла, - це: Визначаючи пропущений місяць, мені потрібно визначити, чи є місяць частиною поточного року чи це попереднім роком.
Поточний місяць є ключовим. Якщо поточний місяць вересень, то місяці з січня по вересень вважаються поточним роком.
Якщо поточний місяць вересня, то жовтень до грудень вважається попереднім роком. Звичайно, це був би діапазон ковзання, оскільки кожен місяць прогресував.
Шукаєте поради.
Відповіді:
1 для відповіді № 1Використовуйте DateTime.Now.Місяць дає тобі фактичний Місяць, і ти можеш порівняти з тими іншими датами, як ти описав, якщо він менший або рівний, то це поточний рік, якщо він більший за попередній рік.
А потім ви можете встановити дату архіву в архіві попереднього року за допомогою DateTime.Now.AddYears (-1)
6 для відповіді № 2
Якщо я чогось не пропускаю, вам просто потрібно порівняти пропущену місячну дату DateTime.Today.Month
DateTime archiveDate;
if(someMonth > DateTime.Today.Month)
archiveDate = new DateTime(DateTime.Today.Year - 1, someMonth, 1);
else
archiveDate = new DateTime(DateTime.Today.Year, someMonth, 1);
0 для відповіді № 3
Ви можете отримати номер поточного місяця (через DateTime.Month
) і відніміть його від місяця порівняння та перевірте, чи він більший за нуль.
Приклад:
int month1 = 5; //may
int month2 = 4; //apr
bool isCurrentYear = (month1 - month2 >= 0); //current year
int month1 = 8; //aug
int month2 = 11; //nov
bool isCurrentYear = (month1 - month2 >= 0); //last year