public static void Main()
DateTime expiry = DateTime.MinValue;
DateTime? expiryNullable = null;
if(DateTime.TryParseExact(mmyyyy, "MM/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out expiry)){
var lastDayofMonth = expiry.GetLastDayOfMonth();
var lastDayofMonthNullable = expiryNullable.GetLastDayOfMonth();
Console.WriteLine(expiry.ToString("dd/MM/yyyy"));
Console.WriteLine(lastDayofMonth.ToString("dd/MM/yyyy"));
Console.WriteLine(lastDayofMonthNullable.Value.ToString("dd/MM/yyyy"));
public static class Extensions {
public static DateTime GetLastDayOfMonth(this DateTime dateTime)
return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
public static DateTime? GetLastDayOfMonth(this DateTime? dateTime)
return dateTime.Value.GetLastDayOfMonth();