DWORD ConvertYearToFull(DWORD ShortYear) { DWORD UpperBoundary = 0; if(!GetCalendarInfo(LOCALE_USER_DEFAULT, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX|CAL_RETURN_NUMBER, nullptr, 0, &UpperBoundary)) { UpperBoundary = 2029; // Magic, current default value. } return (UpperBoundary/100-(ShortYear<UpperBoundary%100?0:1))*100+ShortYear; }
/* Get max date value from registry set */ static INT GetMaxDate(LCID lcid) { INT nMaxDateVal = 0; GetCalendarInfo(lcid, CAL_GREGORIAN, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER, NULL, 0, /* ret type - number */ (LPDWORD)&nMaxDateVal); return nMaxDateVal; }