*(这是ISV数据库,所以我有点逆向工程这一点,并不能改变)...
我怎样才能做到以下日期为int在C#(签证/反之亦然)的转换?
这么说的日期是:
5/17/2012
它被转换成int
77207
在数据库中。
起初我以为这是一个Julian日期但它不会出现这种情况。 我打打闹闹与方法儒略日问然而,这并不匹配。
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#这种转换? 而有人可以陶冶我,什么标准,这是基于或者是它只是一个随机转换。 提前致谢。