6

*(これは ISV データベース用なので、リバース エンジニアリングのようなもので、変更できません) ...

C# で次の日付から int (visa/versa) への変換を行うにはどうすればよいですか ...

日付は次のとおりです。

5/17/2012

intに変換されます

77207

データベースで。

最初はこれがユリウス日だと思っていましたが、そうではないようです。Julian Date Questionの方法をいじっていましたが、これは一致しません。

   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))

そしてそれは正確に見えます。C# でこの変換を行うにはどうすればよいですか? そして、誰かがこれがどの基準に基づいているのか、それとも単にランダムな変換なのかについて教えてもらえますか. 前もって感謝します。

4

4 に答える 4

8
//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);
于 2012-05-17T16:51:54.293 に答える
4

これはクラリオンの日付のようです:

1800年12月28日から経過した日数

伝えられるところでは、Excelでクラリオンの日付を表示するだけです

値から36161を減算し、日付としてフォーマットします

于 2012-05-17T16:45:09.530 に答える
0

一次方程式の場合、y = mx+bの形式で数式を計算できるはずです。少なくとも2つのデータポイントが必要になります。

于 2012-05-17T16:46:20.113 に答える