DateTime.DayOfYear Property

Definition

Gets the day of the year represented by this instance.

public:
 property int DayOfYear { int get(); };
public int DayOfYear { get; }
member this.DayOfYear : int
Public ReadOnly Property DayOfYear As Integer

Property Value

The day of the year, expressed as a value between 1 and 366.

Examples

The following example displays the day of the year of December 31 for the years 2010-2020 in the Gregorian calendar. Note that the example shows that December 31 is the 366th day of the year in leap years.

using System;

public class Example
{
   public static void Main()
   {
      DateTime dec31 = new DateTime(2010, 12, 31);
      for (int ctr = 0; ctr <= 10; ctr++) {
         DateTime dateToDisplay = dec31.AddYears(ctr);
         Console.WriteLine("{0:d}: day {1} of {2} {3}", dateToDisplay,
                           dateToDisplay.DayOfYear,
                           dateToDisplay.Year,
                           DateTime.IsLeapYear(dateToDisplay.Year) ?
                                               "(Leap Year)" : "");
      }
   }
}
// The example displays the following output:
//       12/31/2010: day 365 of 2010
//       12/31/2011: day 365 of 2011
//       12/31/2012: day 366 of 2012 (Leap Year)
//       12/31/2013: day 365 of 2013
//       12/31/2014: day 365 of 2014
//       12/31/2015: day 365 of 2015
//       12/31/2016: day 366 of 2016 (Leap Year)
//       12/31/2017: day 365 of 2017
//       12/31/2018: day 365 of 2018
//       12/31/2019: day 365 of 2019
//       12/31/2020: day 366 of 2020 (Leap Year)
open System

let dec31 = DateTime(2010, 12, 31)
for i = 0 to 10 do
    let dateToDisplay = dec31.AddYears i
    let leap = if DateTime.IsLeapYear dateToDisplay.Year then "(Leap Year)" else ""
    printfn $"{dateToDisplay:d}: day {dateToDisplay.DayOfYear} of {dateToDisplay.Year} {leap}"

// The example displays the following output:
//       12/31/2010: day 365 of 2010
//       12/31/2011: day 365 of 2011
//       12/31/2012: day 366 of 2012 (Leap Year)
//       12/31/2013: day 365 of 2013
//       12/31/2014: day 365 of 2014
//       12/31/2015: day 365 of 2015
//       12/31/2016: day 366 of 2016 (Leap Year)
//       12/31/2017: day 365 of 2017
//       12/31/2018: day 365 of 2018
//       12/31/2019: day 365 of 2019
//       12/31/2020: day 366 of 2020 (Leap Year)
Option Strict On

Module Example
   Public Sub Main()
      Dim dec31 As Date = #12/31/2010#
      For ctr As Integer = 0 To 10
         Dim dateToDisplay As Date = dec31.AddYears(ctr)
         Console.WriteLine("{0:d}: day {1} of {2} {3}", dateToDisplay, 
                           dateToDisplay.DayOfYear,
                           dateToDisplay.Year,   
                           If(DateTime.IsLeapYear(dateToDisplay.Year), 
                                                  "(Leap Year)", "")) 
                           
      Next
   End Sub
End Module
' The example displays the following output:
'       12/31/2010: day 365 of 2010
'       12/31/2011: day 365 of 2011
'       12/31/2012: day 366 of 2012 (Leap Year)
'       12/31/2013: day 365 of 2013
'       12/31/2014: day 365 of 2014
'       12/31/2015: day 365 of 2015
'       12/31/2016: day 366 of 2016 (Leap Year)
'       12/31/2017: day 365 of 2017
'       12/31/2018: day 365 of 2018
'       12/31/2019: day 365 of 2019
'       12/31/2020: day 366 of 2020 (Leap Year)

Remarks

The DayOfYear property takes leap years into account when it calculates the day of the year. The property value always reflects the day of the year in the Gregorian calendar, regardless of the current culture's current calendar. To retrieve the day of the year in a different calendar, call the Calendar.GetDayOfYear method of that calendar.

Applies to

See also