internal static partial class Record
{
[StructLayout(LayoutKind.Sequential)]
+ internal unsafe struct LOCAL
+ {
+ internal int year;
+ internal int month;
+ internal int mday;
+ internal int hour;
+ internal int minute;
+ internal int second;
+ };
+ [StructLayout(LayoutKind.Explicit)]
internal struct DateTime
{
+ [FieldOffset(0)]
internal int type;
+ [FieldOffset(8)]
internal long utime;
- internal int year;
- internal int month;
- internal int mday;
- internal int hour;
- internal int minute;
- internal int second;
+ [FieldOffset(8)]
+ internal LOCAL local;
};
[DllImport(Libraries.Calendar, EntryPoint = "calendar_record_create")]
}
else
{
- time.year = value.LocalTime.Year;
- time.month = value.LocalTime.Month;
- time.mday = value.LocalTime.Day;
- time.hour = value.LocalTime.Hour;
- time.minute = value.LocalTime.Minute;
- time.second = value.LocalTime.Second;
+ time.local.year = value.LocalTime.Year;
+ time.local.month = value.LocalTime.Month;
+ time.local.mday = value.LocalTime.Day;
+ time.local.hour = value.LocalTime.Hour;
+ time.local.minute = value.LocalTime.Minute;
+ time.local.second = value.LocalTime.Second;
}
return time;
}
}
else
{
- value = new CalendarTime(time.year, time.month, time.mday, time.hour, time.minute, time.second);
+ value = new CalendarTime(time.local.year, time.local.month, time.local.mday, time.local.hour, time.local.minute, time.local.second);
}
value._type = time.type;
return value;