Exemple #1
0
        private void FixAll(ref int year, ref int month, ref int day, ref int hour, ref int minute, ref int second, ref int milisecond)
        {
            FixOne(ref milisecond, 1000, ref second);
            FixOne(ref second, 60, ref minute);
            FixOne(ref minute, 60, ref hour);
            FixOne(ref hour, 24, ref day);
            FixMonthYear(ref year, ref month);
            int maxDay = DateCalendar.GetDaysInMonth(year, month);

            if (day < 1 || day > maxDay)
            {
                if (day < 1)
                {
                    while (day < 1)
                    {
                        month--;
                        FixMonthYear(ref year, ref month);
                        maxDay = DateCalendar.GetDaysInMonth(year, month);
                        day   += maxDay;
                    }
                }
                else
                {
                    while (day > maxDay)
                    {
                        day -= maxDay;
                        month++;
                        FixMonthYear(ref year, ref month);
                        maxDay = DateCalendar.GetDaysInMonth(year, month);
                    }
                }
            }
            FixMonthYear(ref year, ref month);
        }