Преобразование даты CLARION C# + DATE ADD/SUBTRACT

*(Это для базы данных ISV, поэтому я занимаюсь обратной разработкой и не могу изменить) ...

Как я могу преобразовать следующую дату в int (visa/versa) в C# ...

Итак, скажите дату:

5/17/2012

она преобразуется в int

77207

в база данных.

Сначала я подумал, что это юлианская дата, однако оказалось, что это не так. Я дурачился с методом из Вопрос о дате по юлианскому календарю, однако он не совпадает.

   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

Я использовал этот SQL для преобразования:

SELECT Convert(date, CONVERT(CHAR,DATEADD(D, 77207, '1800-12-28'),101))

и он оказался точным. Как я могу сделать это преобразование в С#? И может ли кто-нибудь научить меня тому, на каком стандарте это основано, или это просто случайное преобразование. Заранее спасибо.

6
задан Community 23 May 2017 в 12:10
поделиться