private DateTime CalculateTodayForOffset(TimezoneOffset offset) { var gap = Math.Abs(offset.Offset); var toAdd = utc.Now.Hour - gap <= gap ? -1 : 0; //depending on time of day figure out what the expected 'today' is return(utc.Today.AddHours(toAdd).Earliest()); }
public XElement Serialize(string name) { return(new XElement(UblNames.Cac + name, ID.Serialize(nameof(ID)), AddressTypeCode.Serialize(nameof(AddressTypeCode)), AddressFormatCode.Serialize(nameof(AddressFormatCode)), Postbox.Serialize(nameof(Postbox)), Floor.Serialize(nameof(Floor)), Room.Serialize(nameof(Room)), StreetName.Serialize(nameof(StreetName)), AdditionalStreetName.Serialize(nameof(AdditionalStreetName)), BlockName.Serialize(nameof(BlockName)), BuildingName.Serialize(nameof(BuildingName)), BuildingNumber.Serialize(nameof(BuildingNumber)), InhouseMail.Serialize(nameof(InhouseMail)), Department.Serialize(nameof(Department)), MarkAttention.Serialize(nameof(MarkAttention)), MarkCare.Serialize(nameof(MarkCare)), PlotIdentification.Serialize(nameof(PlotIdentification)), CitySubdivisionName.Serialize(nameof(CitySubdivisionName)), CityName.Serialize(nameof(CityName)), PostalZone.Serialize(nameof(PostalZone)), CountrySubentity.Serialize(nameof(CountrySubentity)), CountrySubentityCode.Serialize(nameof(CountrySubentityCode)), Region.Serialize(nameof(Region)), District.Serialize(nameof(District)), TimezoneOffset.Serialize(nameof(TimezoneOffset)), AddressLines?.Select(line => new XElement(UblNames.Cac + "AddressLine", line.Serialize("Line"))), Country?.Serialize(), LocationCoordinates?.Select(lc => lc.Serialize()) )); }
public byte[] ConvertToByte() { List <byte> ret = new List <byte>(); bool reverseByteOrder = this.ReverseByteOrder; ret.AddRange(BitConverter.GetBytes((uint)MagicNumber)); ret.AddRange(BitConverter.GetBytes(MajorVersion.ReverseByteOrder(reverseByteOrder))); ret.AddRange(BitConverter.GetBytes(MinorVersion.ReverseByteOrder(reverseByteOrder))); ret.AddRange(BitConverter.GetBytes(TimezoneOffset.ReverseByteOrder(reverseByteOrder))); ret.AddRange(BitConverter.GetBytes(SignificantFigures.ReverseByteOrder(reverseByteOrder))); ret.AddRange(BitConverter.GetBytes(MaximumCaptureLength.ReverseByteOrder(reverseByteOrder))); ret.AddRange(BitConverter.GetBytes(((uint)LinkType).ReverseByteOrder(reverseByteOrder))); return(ret.ToArray()); }
private void TestTodayAt(TimezoneOffset offset) { var todayUtc = CalculateTodayForOffset(offset); utc.TodayAt(offset).Should().Be(todayUtc); }