main
 1using System;
 2
 3namespace Gorilla.Commons.Utility
 4{
 5    public static class Clock
 6    {
 7        private static Func<DateTime> time_provider;
 8
 9        static Clock()
10        {
11            reset();
12        }
13
14        public static Date today()
15        {
16            return time_provider();
17        }
18
19        public static DateTime now()
20        {
21            return time_provider();
22        }
23
24#if DEBUG
25        public static void change_time_provider_to(Func<DateTime> new_time_provider)
26        {
27            if (new_time_provider != null) time_provider = new_time_provider;
28        }
29#endif
30
31        public static void reset()
32        {
33            time_provider = () => DateTime.Now;
34        }
35    }
36}