DayOfYearプロパティは、うるう年の場合は追加されたうるう日の分も積算します。 次の例では2011年〜2013年の各年の4月1日を表すDateTimeに対して、その年がうるう年かどうかと、その日までの通算日数を表示しています。
DateTime/DateTimeOffset.DayOfYearプロパティでうるう年での通算何日目かを求める
Imports System
Class Sample
Shared Sub Main()
' 2011年〜2013年の各年の4月1日
Dim dt20110401 As New DateTime(2011, 4, 1)
Dim dt20120401 As New DateTime(2012, 4, 1)
Dim dt20130401 As New DateTime(2013, 4, 1)
Console.WriteLine("{0} ({1}) : {2}", dt20110401, DateTime.IsLeapYear(dt20110401.Year), dt20110401.DayOfYear)
Console.WriteLine("{0} ({1}) : {2}", dt20120401, DateTime.IsLeapYear(dt20120401.Year), dt20120401.DayOfYear)
Console.WriteLine("{0} ({1}) : {2}", dt20130401, DateTime.IsLeapYear(dt20130401.Year), dt20130401.DayOfYear)
End Sub
End Class
実行結果
2011/04/01 0:00:00 (False) : 91 2012/04/01 0:00:00 (True) : 92 2013/04/01 0:00:00 (False) : 91