Описание класса для представления даты - C#
Формулировка задачи:
Доброго дня, не могли бы помочь разобрать в куске этого кода, а именно для чего это?
int datePart1 = GetDatePart(0);
int datePart2 = GetDatePart(2); public DateTime AddMonths(int months)
{
if (months < -120000 || months > 120000)
throw new ArgumentOutOfRangeException("months");
int datePart1 = GetDatePart(0);
int datePart2 = GetDatePart(2);
int day = GetDatePart(3);
int num1 = datePart2 - 1 + months;
int month;
int year;
if (num1 >= 0)
{
month = num1%12 + 1;
year = datePart1 + num1/12;
}
else
{
month = 12 + (num1 + 1)%12;
year = datePart1 + (num1 - 11)/12;
}
if (year < 1 || year > 9999)
throw new ArgumentOutOfRangeException("months");
int num2 = DaysInMonth(year, month);
if (day > num2)
day = num2;
return new DateTime((ulong) (DateToTicks(year, month, day) + InternalTicks%864000000000L) | InternalKind);
}Решение задачи: «Описание класса для представления даты»
textual
Листинг программы
GetDatePart();