TheDeveloperBlog.com


C# DateTime.Month Property

DateTime.Month returns an integer. This value indicates the month in the year, from January to December. With a format string, we can get month names. The DateTime type provides all this functionality in the .NET Framework.


Example. First, we use the Month property on DateTime in the C# language. Month is an instance property getter in the language, which means you must call it on a DateTime instance, but not with parentheses.

Then: It returns an integer that is 1-based: January is equal to 1, and December is equal to 12.

C# program that uses Month

using System;

class Program
{
    static void Main()
    {
	//
	// Get the current month integer.
	//
	DateTime now = DateTime.Now;
	//
	// Write the month integer and then the three-letter month.
	//
	Console.WriteLine(now.Month);
	Console.WriteLine(now.ToString("MMM"));
    }
}

Output

5
May

Format string. The preceding example code shows how to use the MMM format string for month strings in the C# language. You can use the MMMM string (four Ms) for the complete month name.


Example 2. You may need to display the month name in a three-letter format. This is equivalent, in English, to taking a substring of the first three letters. But using the three Ms next to each other may be easier and clearer for your code.

C# program that displays months

using System;

class Program
{
    static void Main()
    {
	DateTime now = DateTime.Now;
	for (int i = 0; i < 12; i++)
	{
	    Console.WriteLine(now.ToString("MMM"));
	    now = now.AddMonths(1);
	}
    }
}

Output

Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Jan


Example 3. Here we display the month string in full. You need to specify four Ms next to each other in the format string. The program below simply loops over the 11 next months after the time of writing, which happens to be in February.

C# program that displays complete months

using System;

class Program
{
    static void Main()
    {
	DateTime now = DateTime.Now;
	for (int i = 0; i < 12; i++)
	{
	    Console.WriteLine(now.ToString("MMMM"));
	    now = now.AddMonths(1);
	}
    }
}

Output

February
March
April
May
June
July
August
September
October
November
December
January


Arrays. In your program, you may want to have a 12-element array with all the month strings in it. This would allow you to access the month string by its index, such as having month[1] being equal to January. This may require a 13-element array.

Tip: Using a static array to cache strings is often faster than accessing them from the operating system or framework.

String ArrayStatic Array

We used the month string. The base class library provides powerful DateTime methods. We do not need to manually type in month names in most cases. We noted ways you can enumerate all the string values in your C# program.