# Python Program to Validate a Date

This python program will validate whether a given date is valid or not, based on the input provided by the user.

## Problem Statement

Given a date in the format of day, month, and year, we need to check whether the date is valid or not. If the date is valid, the program will display a message indicating that the date is valid. Otherwise, it will display a message stating that the date is invalid.

## Python Program to Validate a Date

```def is_valid_date(day, month, year):
# List of maximum days in each month
max_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# Check if it's a leap year
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
max_days[1] = 29

# Check if the month is valid
if month < 1 or month > 12:
return False

# Check if the day is valid
if day < 1 or day > max_days[month - 1]:
return False

return True

# Main program
date_input = input("Enter a date (day, month, year): ")
day, month, year = map(int, date_input.split(','))

if is_valid_date(day, month, year):
print("The date is valid.")
else:
print("The date is invalid.")```

## How it works

The program defines a function called `is_valid_date()` to check the validity of the given date. It takes three parameters: `day`, `month`, and `year`. The function first creates a list called `max_days` representing the maximum number of days in each month. By default, February has 28 days.

Next, the function checks if the given year is a leap year. A leap year occurs if the year is divisible by 4 and not divisible by 100, or if it is divisible by 400. If the year is a leap year, it updates the maximum number of days in February to 29.

After that, the function checks if the month is within the valid range of 1 to 12. If the month is invalid, it returns `False`.

Finally, the function checks if the given day is within the valid range for the given month. It retrieves the maximum number of days for the corresponding month from the `max_days` list and compares it with the given day. If the day is invalid, it returns `False`. Otherwise, it returns `True` to indicate that the date is valid.

In the main program, the user is prompted to enter a date in the format “day, month, year”. The input is then split and converted into integers using the `map()` function. The program calls the `is_valid_date()` function with the provided day, month, and year. If the function returns `True`, it prints “The date is valid.” Otherwise, it prints “The date is invalid.”