public GXDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond)
{
if (year < 1 || year == 0xFFFF)
{
Skip |= DateTimeSkips.Year;
year = 2;
}
DaylightSavingsBegin = month == 0xFE;
DaylightSavingsEnd = month == 0xFD;
if (month < 1 || month > 12)
{
Skip |= DateTimeSkips.Month;
month = 1;
}
if (day < 1 || day > 31)
{
Skip |= DateTimeSkips.Day;
day = 1;
}
if (hour < 0 || hour > 24)
{
Skip |= DateTimeSkips.Hour;
hour = 0;
}
if (minute < 0 || minute > 60)
{
Skip |= DateTimeSkips.Minute;
minute = 0;
}
if (second < 0 || second > 60)
{
Skip |= DateTimeSkips.Second;
second = 0;
}
if (millisecond < 0 || millisecond > 1000)
{
Skip |= DateTimeSkips.Ms;
millisecond = 0;
}
try
{
Value = new DateTime(year, month, day, hour, minute, second, millisecond, DateTimeKind.Local);
}
catch
{
Value = DateTime.MaxValue;
}
}