Esempio n. 1
0
        public void DateTimeConversion()
        {
            UT_INIT();

            Log.SetVerbosity(new ConsoleLogger(), Verbosity.Verbose, "/");
            Log.MapThreadName("UnitTest");
            Log.SetDomain("TickWatch", Scope.Method);

            Log.Info("DateTime.MinValue(): " + (DateTime.MinValue.ToString()));
            Log.Info("DateTime.MaxValue(): " + (DateTime.MaxValue.ToString()));

            Ticks ticksNow = new Ticks();

            // roundtrip 1
            long millisEpochNow = ticksNow.InEpochMillis();

            ticksNow.SetFromEpochMillis(millisEpochNow);
            long ticksNowFromEpoch = ticksNow.Raw();

            UT_TRUE(Math.Abs(ticksNow.Raw() - ticksNowFromEpoch) < 50000);

            // roundtrip 2
            long millis5_1_70_3_51 = 0
                                     + (4L * 24L * 60L * 60L * 1000L)
                                     + (3L * 60L * 60L * 1000L)
                                     + (51L * 60L * 1000L);


            long millis5_1_71_3_51 = millis5_1_70_3_51
                                     + (365L * 24L * 60L * 60L * 1000L);

            Ticks ticks5_1_70_3_51 = new Ticks(); ticks5_1_70_3_51.SetFromEpochMillis(millis5_1_70_3_51);
            Ticks ticks5_1_71_3_51 = new Ticks(); ticks5_1_71_3_51.SetFromEpochMillis(millis5_1_71_3_51);

            UT_TRUE(ticks5_1_70_3_51.Raw() < ticks5_1_71_3_51.Raw());


            long millis5_1_70_3_51_back = ticks5_1_70_3_51.InEpochMillis();
            long millis5_1_71_3_51_back = ticks5_1_71_3_51.InEpochMillis();


            UT_TRUE(millis5_1_70_3_51_back == millis5_1_70_3_51);
            UT_TRUE(millis5_1_71_3_51_back == millis5_1_71_3_51);

            // add 1 day, 2h, 3min and 4sec  days:

            Ticks tomorrow = new Ticks(ticksNow);
            Ticks span     = new Ticks();

            span.FromMillis((long)(new TimeSpan(1, 2, 3, 4)).TotalMilliseconds);
            tomorrow.Add(span);

            Log.Info("Today: is:        " + (DateTime.Now.ToString()));
            Log.Info("Today: is:        " + (ticksNow.InDotNetDateTime().ToString()));
            Log.Info("Today: is:        " + ((new Ticks(ticksNowFromEpoch)).InDotNetDateTime().ToString()));
            Log.Info("+1d, 2h,3m,4s:    " + (tomorrow.InDotNetDateTime().ToString()));
            Log.Info("5.1.70 3:51:00:   " + (ticks5_1_70_3_51.InDotNetDateTime().ToString()));
            Log.Info("5.1.71 3:51:00:   " + (ticks5_1_71_3_51.InDotNetDateTime().ToString()));
        }