void
_EditDateImpl::SetDate(const DateTime& date)
{
- result r = ValidateYear(date.GetYear());
- SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[E_INVALID_ARG] Invalid argument is used. year (%d)", date.GetYear());
+ ClearLastResult();
+ SysTryReturnVoidResult(NID_UI_CTRL, (date.GetYear() >= DATETIME_YEAR_MIN && date.GetYear() <= DATETIME_YEAR_MAX), E_INVALID_ARG,
+ "[E_INVALID_ARG] Invalid argument is used. year (%d).", date.GetYear());
+
+ int minYear = -1;
+ int maxYear = -1;
+
+ GetYearRange(minYear, maxYear);
+
+ DateTime dateTime;
+
+ if (date.GetYear() < minYear)
+ {
+ dateTime.SetValue(minYear, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute(), date.GetSecond());
+ }
+ else if (date.GetYear() > maxYear)
+ {
+ dateTime.SetValue(maxYear, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute(), date.GetSecond());
+ }
+ else
+ {
+ dateTime.SetValue(date);
+ }
- GetCore().SetPropertyDate(Variant(date));
+ GetCore().SetPropertyDate(Variant(dateTime));
return;
}