/ / Визначте поточний рік чи попередній рік на основі вибору місяця - c #, дати

Визначити поточний рік або попередній рік, виходячи з вибору місяця - c #, дата

Я успадкував архівну програму, написану на 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