Beispiel #1
0
        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;
        }
Beispiel #2
0
 internal static bool IfcValidTime(IfcLocalTime Time)
 {
     // used express logic
     if (Time.SecondComponent != null)
     {
         return(Time.MinuteComponent != null);
     }
     return(true);
 }
Beispiel #3
0
        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);
 }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute, int second,
                                 IfcCoordinatedUniversalTimeOffset uctOffset)
 {
     SetTimeLocal(lt, hour, minute, second);
     lt.Zone = uctOffset;
 }
Beispiel #7
0
 public static void SetTimeLocal(this IfcLocalTime lt, int hour)
 {
     lt.HourComponent = hour;
 }
Beispiel #8
0
 public static void SetTimeLocal(this IfcLocalTime lt, int hour, int minute)
 {
     lt.HourComponent   = hour;
     lt.MinuteComponent = minute;
 }
Beispiel #9
0
 /// <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;
 }