CLARION日期转换C#+ DATE ADD/SUBTRACT

bum*_*una 6 c# t-sql clarion

*(这是针对ISV数据库所以我对此进行逆向工程并且不能更改)...

如何在C#中执行以下日期转换为int(visa/versa)转换...

所以说日期是:

5/17/2012
Run Code Online (Sandbox Code Playgroud)

它被转换为int

77207
Run Code Online (Sandbox Code Playgroud)

在数据库中.

起初我以为这是一个朱利安日期,但似乎并非如此.我正在使用朱利安日期问题的方法搞错,但这并不匹配.

   var date = ConvertToJulian(Convert.ToDateTime("5/17/2012"));
   Console.WriteLine(date);

    public static long ConvertToJulian(DateTime Date)
    {
        int Month = Date.Month;
        int Day = Date.Day;
        int Year = Date.Year;

        if (Month < 3)
        {
            Month = Month + 12;
            Year = Year - 1;
        }
        long JulianDay = Day + (153 * Month - 457) 
        / 5 + 365 * Year + (Year / 4) - 
        (Year / 100) + (Year / 400) + 1721119;
        return JulianDay;
    }

Outputs 2456055 //Should be 77207
Run Code Online (Sandbox Code Playgroud)

我一直在使用这个SQL来进行转换:

SELECT Convert(date, CONVERT(CHAR,DATEADD(D, 77207, '1800-12-28'),101))
Run Code Online (Sandbox Code Playgroud)

它似乎是准确的.我怎么能在C#中进行这种转换?并且有人能够教会我这是基于什么标准,还是仅仅是随机转换.提前致谢.

Eri*_*ang 7

//TO int
var date = new DateTime(1800,12,28,0,0,0);            
var daysSince = (DateTime.Now-date).Days;

//FROM int
var date = new DateTime(1800, 12, 28, 0, 0, 0);
var theDate = date.AddDays(77207);
Run Code Online (Sandbox Code Playgroud)


Jos*_*ake 4

这似乎是一个号角日期:

自1800年12月28日以来经过的天数

据称,显示Clarion Dates在Excel中只需要

从值中减去36161并将其格式化为日期