payne
2024-04-25 b57f4eca1133a7ecad85abf3cff87fe88c366ec2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
namespace Admin.NET.Core
{
    public static class ExcelDateUtil
    {
        public static long ToInt(DateTime date) 
        {
            var current = Convert.ToDateTime("1900-01-01") ;         
            if (date.Ticks <= current.Ticks) return 1;
            var days = (date - current).Days;
            return days < 59 ? days + 1 : days + 2;
        }
 
        public static long ToInt(DateTimeOffset date)
        {
            var current = Convert.ToDateTime("1900-01-01");
            if (date.Ticks <= current.Ticks) return 1;
            var days = (date - current).Days;
            return days < 59 ? days + 1 : days + 2;
        }
 
 
        public static DateTime ToDateTime(long days)
        {
            var current = Convert.ToDateTime("1900-01-01");
            if(days <= 1) return current;
            return current.AddDays(days < 60 ? days -1 : days - 2);
        }
 
        public static DateTimeOffset ToDateTimeOffset(long days)
        {
            var current = new DateTimeOffset(Convert.ToDateTime("1900-01-01"));
            if (days <= 1) return current;
            return current.AddDays(days < 60 ? days - 1 : days - 2);
        }
    }
}