嘿,我希望从当前日期创建一个像YYDDD这样的朱利安日期格式,其中DDD将是自该年开始以来的天数。
是否有任何.NET功能可以轻松完成此任务?
答案 0 :(得分:2)
因为,如果您正在使用Julian日期,您可能需要一次又一次地执行此操作,我建议为System.DateTime编写扩展函数,该函数将执行如下操作:
return (DateTime.Year % 100) * 1000 + DateTime.DayOfYear
ETA:如果您要做的是将DateTime转换为Julian日期格式(以Julian日期格式创建格式化字符串),我仍然建议使用扩展函数,但它看起来像这样:
public static string ToJulianDate(this DateTime date)
{
return string.Format("{0:00000}", (date.Year % 100) * 1000 + date.DayOfYear);
}
答案 1 :(得分:0)
没有我能想到的功能,但也许这会有所帮助:
Public Function Date2Julian(ByVal vDate As Date) As Long
Date2Julian = CLng(Format(Year(vDate), "0000") _
+ Format(DateDiff("d", CDate("01/01/" _
+ Format(Year(vDate), "0000")), vDate) _
+ 1, "000"))
End Function
答案 2 :(得分:0)
以下是一对可能会有帮助的人:
public double GetJulianDate(DateTime pdtmDate)
{
DateTime dtmStart = new DateTime(1,1,1);
TimeSpan objTS = new TimeSpan(pdtmDate.Ticks - dtmStart.Ticks);
return objTS.TotalDays + 1721637;
}
Public Function Date2Julian(ByVal vDate As Date) As Long
Date2Julian = CLng(Format(Year(vDate), "0000") _
+ Format(DateDiff("d", CDate("01/01/" _
+ Format(Year(vDate), "0000")), vDate) _
+ 1, "000"))
End Function