public static void MakeNow(this IfcLocalTime lt) { DateTimeOffset localTime = DateTimeOffset.Now; lt.HourComponent = localTime.Hour; lt.SecondComponent = localTime.Second; lt.MinuteComponent = localTime.Minute; IfcCoordinatedUniversalTimeOffset coordinatedUniversalTimeOffset = lt.Model.Instances.New <IfcCoordinatedUniversalTimeOffset>(); coordinatedUniversalTimeOffset.HourOffset = new IfcHourInDay(localTime.Offset.Hours); coordinatedUniversalTimeOffset.MinuteOffset = new IfcMinuteInHour(localTime.Offset.Minutes); if (localTime.Offset.Hours < 0 || (localTime.Offset.Hours == 0 && localTime.Offset.Minutes < 0)) { coordinatedUniversalTimeOffset.Sense = IfcAheadOrBehind.BEHIND; } else { coordinatedUniversalTimeOffset.Sense = IfcAheadOrBehind.AHEAD; } lt.Zone = coordinatedUniversalTimeOffset; TimeZone tz = TimeZone.CurrentTimeZone; DaylightTime dt = tz.GetDaylightChanges(localTime.Year); lt.DaylightSavingOffset = dt.Delta.Hours; }
internal static bool IfcValidTime(IfcLocalTime Time) { // used express logic if (Time.SecondComponent != null) { return(Time.MinuteComponent != null); } return(true); }
public static string ToISODateTimeString(this IfcLocalTime localTime) { var minute = 0; if (localTime.MinuteComponent.HasValue) { minute = (int)localTime.MinuteComponent.Value; } double seconds = 0; if (localTime.SecondComponent.HasValue) { seconds = localTime.SecondComponent.Value; } var secondInt = Math.Truncate(seconds); var milliSeconds = (int)((seconds - secondInt) * 1000); seconds = secondInt; var dateTime = new DateTime(1, 1, 1, (int)localTime.HourComponent, minute, (int)seconds, milliSeconds); return(dateTime.ToString("yyyy-MM-ddThh:mm:ss.fff")); }
/// <summary> /// Get the string value for the IfcDateTimeSelect /// </summary> /// <param name="ifcDateTimeSelect">IfcDateTimeSelect</param> /// <returns>string</returns> public static string GetAsString(this IfcDateTimeSelect ifcDateTimeSelect) { if (ifcDateTimeSelect is IfcDateAndTime) { IfcDateAndTime datetime = (ifcDateTimeSelect as IfcDateAndTime); int minute = 0; if (datetime.TimeComponent.MinuteComponent.HasValue) { minute = (int)datetime.TimeComponent.MinuteComponent.Value; } int second = 0; if (datetime.TimeComponent.SecondComponent.HasValue) { second = (int)datetime.TimeComponent.SecondComponent.Value; } return(new DateTime(datetime.DateComponent.YearComponent, datetime.DateComponent.MonthComponent, datetime.DateComponent.DayComponent, datetime.TimeComponent.HourComponent, minute, second).ToString()); } if (ifcDateTimeSelect is IfcCalendarDate) { IfcCalendarDate date = (ifcDateTimeSelect as IfcCalendarDate); return(new DateTime(date.YearComponent, date.MonthComponent, date.DayComponent).ToString("d")); } if (ifcDateTimeSelect is IfcLocalTime) { IfcLocalTime time = (ifcDateTimeSelect as IfcLocalTime); int minute = 0; if (time.MinuteComponent.HasValue) { minute = (int)time.MinuteComponent.Value; } int second = 0; if (time.SecondComponent.HasValue) { second = (int)time.SecondComponent.Value; } return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, time.HourComponent, minute, second).ToString("HH:mm:ss")); } return(string.Empty); }
public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute, int second, IfcCoordinatedUniversalTimeOffset uctOffset, int daylightSavingOffset) { SetTimeLocal(lt, hour, minute, second, uctOffset); lt.DaylightSavingOffset = daylightSavingOffset; }
public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute, int second, IfcCoordinatedUniversalTimeOffset uctOffset) { SetTimeLocal(lt, hour, minute, second); lt.Zone = uctOffset; }
public static void SetTimeLocal(this IfcLocalTime lt, int hour) { lt.HourComponent = hour; }
public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute) { lt.HourComponent = hour; lt.MinuteComponent = minute; }
/// <summary> /// Sets the hours minutes and seconds in the local time and sets the time zone and offsets and daylight saving hours to that of this machine now /// </summary> /// <param name = "lt"></param> /// <param name = "hour"></param> /// <param name = "minute"></param> /// <param name = "second"></param> public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute, int second) { lt.HourComponent = hour; lt.MinuteComponent = minute; lt.SecondComponent = second; }