Beispiel #1
0
        static public void Scratchpad()
        {
            var        dt  = DateTime.Now;
            HdDateTime hdt = DateTime.UtcNow;
            var        ts  = TimeSpan.FromSeconds(123);
            var        hts = HdTimeSpan.FromDays(123L);

            //ts.Days
            //dt.Day
            //dt.AddDays()
            //HdTimeSpan.
            Console.WriteLine(HdDateTime.MinValue);
            Console.WriteLine(HdDateTime.MaxValue);
            Console.WriteLine(new HdDateTime(1678, 1, 1).EpochNanoseconds);
            Console.WriteLine(new HdDateTime(2262, 1, 1).EpochNanoseconds);
            Console.WriteLine(new HdDateTime(2262, 1, 1).AddNanoseconds(-1));
            Console.WriteLine(HdDateTime.MaxValue);

            Console.WriteLine(hdt);
            Console.WriteLine(hdt.AddTicks(1));
            Console.WriteLine(hdt.AddMilliseconds(1));
            Console.WriteLine(hdt.AddSeconds(1));
            Console.WriteLine(hdt.AddHours(12));
            Console.WriteLine(hdt.AddDays(123));

            int a = hdt.Millisecond, b = hdt.Second, c = hdt.Minute, d = hdt.Hour, e = hdt.Day, f = hdt.Month, g = hdt.Year, h = hdt.DayOfYear;

            hdt = hdt.Date;
            HdTimeSpan tsss = hdt.TimeOfDay;

            DayOfWeek dw = hdt.DayOfWeek;

            //dt.AddTicks();
            //hdt.AddTicks()
        }
Beispiel #2
0
        public void PrintMinMaxConstants()
        {
            HdDateTime maxValue     = HdDateTime.MaxValue;
            HdDateTime minValue     = HdDateTime.MinValue;
            var        tickNanosMin = 100 - ((DateTime)minValue.AddTicks(1) - minValue).TotalNanoseconds;
            var        tickNanosMax = (maxValue.AddTicks(-1) - (DateTime)(maxValue.AddTicks(-1))).TotalNanoseconds;

            var secondNanosMin = 1000000000 + minValue.AddSeconds(1).EpochNanoseconds % 1000000000;
            var secondNanosMax = maxValue.EpochNanoseconds % 1000000000;

            Console.WriteLine($"HDT MinValue       = {minValue.AddSeconds(1)} - 1s, {tickNanosMin} / {HdDateTime.MinValue.EpochNanoseconds}");
            Console.WriteLine($"HDT MinValue       = {minValue.RawDateTime} {secondNanosMin}");
            Console.WriteLine();
            Console.WriteLine($"HDT MaxValue       = {maxValue.AddSeconds(-1)} + 1s, {tickNanosMax} / {HdDateTime.MaxValue.EpochNanoseconds}");
            Console.WriteLine($"HDT MaxValue       = {maxValue.RawDateTime} {secondNanosMax}");
        }
Beispiel #3
0
        public void TestMinMaxConstantsExtra()
        {
            HdDateTime maxValue = HdDateTime.MaxValue;
            HdDateTime minValue = HdDateTime.MinValue;

            var nanosMin = 100 - ((DateTime)minValue.AddTicks(1) - minValue).TotalNanoseconds;
            var nanosMax = (maxValue.AddTicks(-1) - (DateTime)(maxValue.AddTicks(-1))).TotalNanoseconds;

            var secondNanosMin = 1000000000 + minValue.AddSeconds(1).EpochNanoseconds % 1000000000;
            var secondNanosMax = maxValue.EpochNanoseconds % 1000000000;

            Assert.True(nanosMax == maxValue.AddTicks(-1).TimestampModulo);
            Assert.True(nanosMin == minValue.AddTicks(1).TimestampModulo);

            Assert.True(nanosMax == secondNanosMax % 100);
            Assert.True(nanosMin == secondNanosMin % 100);

            Assert.AreEqual(minValue.EpochNanoseconds, new HdDateTime((DateTime)minValue.AddTicks(1), (Byte)nanosMin).AddTicks(-1).EpochNanoseconds);
            Assert.True(minValue == new HdDateTime((DateTime)minValue.AddTicks(1), (Byte)nanosMin).AddTicks(-1));
            Assert.AreEqual(maxValue.EpochNanoseconds, new HdDateTime((DateTime)maxValue.AddTicks(-1), (Byte)nanosMax).AddTicks(1).EpochNanoseconds);
            Assert.True(maxValue == new HdDateTime((DateTime)maxValue.AddTicks(-1), (Byte)nanosMax).AddTicks(1));

            Assert.AreEqual(maxValue.EpochNanoseconds, HdDateTime.FromEpochMilliseconds(maxValue.EpochNanoseconds / 1000000000 * 1000, secondNanosMax).EpochNanoseconds);
        }