System.Xml.Schema.XsdDateTime.XsdDateTime C# (CSharp) Méthode

XsdDateTime() public méthode

Constructs an XsdDateTime from a DateTime.
public XsdDateTime ( System.DateTime dateTime, XsdDateTimeFlags kinds ) : System
dateTime System.DateTime
kinds XsdDateTimeFlags
Résultat System
        public XsdDateTime(DateTime dateTime, XsdDateTimeFlags kinds) {
            Debug.Assert(Bits.ExactlyOne((uint)kinds), "Only one DateTime type code can be set.");
            dt = dateTime;

            DateTimeTypeCode code = (DateTimeTypeCode) (Bits.LeastPosition((uint) kinds) - 1);
            int zoneHour = 0;
            int zoneMinute = 0;
            XsdDateTimeKind kind;

            switch (dateTime.Kind) {
                case DateTimeKind.Unspecified: kind = XsdDateTimeKind.Unspecified; break;
                case DateTimeKind.Utc: kind = XsdDateTimeKind.Zulu; break;

                default: {
                    Debug.Assert(dateTime.Kind == DateTimeKind.Local, "Unknown DateTimeKind: " + dateTime.Kind);
                    TimeSpan utcOffset = TimeZone.CurrentTimeZone.GetUtcOffset(dateTime);

                    if (utcOffset.Ticks < 0) {
                        kind = XsdDateTimeKind.LocalWestOfZulu;
                        zoneHour = -utcOffset.Hours;
                        zoneMinute = -utcOffset.Minutes;
                    }
                    else {
                        kind = XsdDateTimeKind.LocalEastOfZulu;
                        zoneHour = utcOffset.Hours;
                        zoneMinute = utcOffset.Minutes;
                    }
                    break;
                }
            }

            extra = (uint)(((int)code << TypeShift) | ((int)kind << KindShift) | (zoneHour << ZoneHourShift) | zoneMinute);
        }

Same methods

XsdDateTime::XsdDateTime ( Parser parser ) : System
XsdDateTime::XsdDateTime ( string text ) : System
XsdDateTime::XsdDateTime ( string text, XsdDateTimeFlags kinds ) : System