【发布时间】:2011-12-20 19:30:54
【问题描述】:
嘿,我希望从当前日期创建一个像 YYDDD 这样的儒略日期格式,其中 DDD 是自一年开始以来的天数。
是否有任何 .NET 函数可以轻松做到这一点?
【问题讨论】:
嘿,我希望从当前日期创建一个像 YYDDD 这样的儒略日期格式,其中 DDD 是自一年开始以来的天数。
是否有任何 .NET 函数可以轻松做到这一点?
【问题讨论】:
因为,如果您使用 Julian 日期,您可能需要一次又一次地执行此操作,我建议为 System.DateTime 编写一个扩展函数,该函数将执行如下操作:
return (DateTime.Year % 100) * 1000 + DateTime.DayOfYear
ETA:如果您想要将 DateTime 转换为儒略日期格式(创建儒略日期格式的格式化字符串),我仍然建议使用扩展函数,但它看起来像这样:
public static string ToJulianDate(this DateTime date)
{
return string.Format("{0:00000}", (date.Year % 100) * 1000 + date.DayOfYear);
}
【讨论】:
没有我能想到的功能,但也许这会有所帮助:
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
【讨论】:
这里有几个可能会有所帮助:
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
【讨论】: