*(这是针对 ISV 数据库的,所以我对此进行了逆向工程并且无法更改)...
我如何在 C# 中执行以下日期到 int (visa/versa) 转换...
所以说日期是:
5/17/2012
它被转换为 int
77207
在数据库中。
起初我以为这是儒略日期,但事实似乎并非如此。我在玩弄来自的方法朱利安日期问题 https://stackoverflow.com/questions/5248827/convert-datetime-to-julian-date-in-c-sharp-tooadate-safe但这不匹配。
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# 中进行这种转换?有人可以告诉我这是基于什么标准还是只是随机转换。提前致谢。
//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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)