Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ operator DateTime()

static implicit System.Xml.Schema.XsdDateTime.operator DateTime ( XsdDateTime xdt)
inlinestatic

Definition at line 531 of file XsdDateTime.cs.

532 {
534 switch (xdt.InternalTypeCode)
535 {
536 case DateTimeTypeCode.GDay:
537 case DateTimeTypeCode.GMonth:
538 dateTime = new DateTime(DateTime.Now.Year, xdt.Month, xdt.Day);
539 break;
540 case DateTimeTypeCode.Time:
541 {
542 DateTime now = DateTime.Now;
543 TimeSpan value = new DateTime(now.Year, now.Month, now.Day) - new DateTime(xdt.Year, xdt.Month, xdt.Day);
544 dateTime = xdt._dt.Add(value);
545 break;
546 }
547 default:
548 dateTime = xdt._dt;
549 break;
550 }
551 switch (xdt.InternalKind)
552 {
553 case XsdDateTimeKind.Zulu:
554 dateTime = new DateTime(dateTime.Ticks, DateTimeKind.Utc);
555 break;
556 case XsdDateTimeKind.LocalEastOfZulu:
557 {
558 long num = dateTime.Ticks - new TimeSpan(xdt.ZoneHour, xdt.ZoneMinute, 0).Ticks;
559 if (num < DateTime.MinValue.Ticks)
560 {
561 num += TimeZoneInfo.Local.GetUtcOffset(dateTime).Ticks;
562 if (num < DateTime.MinValue.Ticks)
563 {
564 num = DateTime.MinValue.Ticks;
565 }
566 return new DateTime(num, DateTimeKind.Local);
567 }
568 dateTime = new DateTime(num, DateTimeKind.Utc).ToLocalTime();
569 break;
570 }
571 case XsdDateTimeKind.LocalWestOfZulu:
572 {
573 long num = dateTime.Ticks + new TimeSpan(xdt.ZoneHour, xdt.ZoneMinute, 0).Ticks;
574 if (num > DateTime.MaxValue.Ticks)
575 {
576 num += TimeZoneInfo.Local.GetUtcOffset(dateTime).Ticks;
577 if (num > DateTime.MaxValue.Ticks)
578 {
579 num = DateTime.MaxValue.Ticks;
580 }
581 return new DateTime(num, DateTimeKind.Local);
582 }
583 dateTime = new DateTime(num, DateTimeKind.Utc).ToLocalTime();
584 break;
585 }
586 }
587 return dateTime;
588 }

References System.Xml.Schema.XsdDateTime.DateTime, System.Xml.Dictionary, System.TimeZoneInfo.Local, System.DateTime.MaxValue, System.DateTime.MinValue, System.DateTime.Now, System.Xml.TimeSpan, and System.value.