WORD MTime::AdjustYear(const int nDiffDays) { const int nDay = DayOfYear() + nDiffDays; if (nDay > DaysInYear()) return _SysTime.wYear + 1; else if (nDay < 0) return _SysTime.wYear - 1; return _SysTime.wYear; }
//! Number of microseconds in year //! \param[in] year Year of interest //! \returns Number of microseconds in year //! \note Currenly it does not take daylight saving into account, //! all parameters are ignoreed, may be changed. scxulong MicrosecondsInYear(scxyear year) { return DaysInYear(year) * (static_cast<scxulong>(24) * 60 * 60 * 1000 * 1000); }
//! Number of minutes in year //! \param[in] year Year of interest //! \returns Number of minutes in year unsigned MinutesInYear(scxyear year) { return DaysInYear(year) * 24 * 60; }
//! Number of hours in year //! \param[in] year Year of interest //! \returns Number of hours in "year" unsigned HoursInYear(scxyear year) { return 24 * DaysInYear(year); }
static inline bool IsLeapYear(int year) { return DaysInYear(year) == 366; }
unsigned RedDate::DaysToEndOfYear(void) const { return (DaysInYear(year) - DaysFromStartOfYear()); }