234
Ever wondered how to check if the current year is a leap year with a simple script? Well, wonder no more! In this post, we’ll write a Shell Script to Check if the Current Year is Leap Year or Not.
Leap Year Rules
A year is considered a leap year if it follows these rules:
- Divisible by 4: Every year that is evenly divisible by 4 is a leap year (except for the special cases below).
- Divisible by 100 (but not 400): Years divisible by 100 but not by 400 are not leap years.
- Divisible by 400: Years divisible by 400 are leap years (e.g., 1600, 2000).
Shell Script to Check if the Current Year is Leap Year or Not
Here’s a shell script that checks for leap years
#!/bin/bash
# Get the current year
current_year=$(date +"%Y")
# Check if divisible by 400 (most specific case)
if [[ $current_year % 400 -eq 0 ]]; then
echo "$current_year is a leap year."
exit 0
fi
# Check if divisible by 100 (but not 400)
if [[ $current_year % 100 -eq 0 ]]; then
echo "$current_year is not a leap year."
exit 0
fi
# Check if divisible by 4 (general case)
if [[ $current_year % 4 -eq 0 ]]; then
echo "$current_year is a leap year."
exit 0
fi
# If none of the above conditions are met, it's not a leap year
echo "$current_year is not a leap year."
Explanation
- The script starts with
#!/bin/bash
, indicating the shell interpreter to use. current_year=$(date +"%Y")
captures the current year using thedate
command with the%Y
format specifier.- The script then uses a series of
if
statements to check the leap year conditions:- The first
if
checks for divisibility by 400 (the most specific case, superseding the general divisibility by 4). - The second
if
checks for divisibility by 100 but not 400 (to exclude centuries not divisible by 400). - The third
if
checks for the general case of divisibility by 4.
- The first
- Each
if
statement displays a message and exits the script (usingexit 0
) upon finding a match. - If none of the conditions are met, the final
echo
statement indicates the year is not a leap year.
Running the Script
- Save the script as a file (e.g.,
leap_year.sh
). - Make the script executable using
chmod +x leap_year.sh
. - Run the script with
./leap_year.sh
.
The script will output a message indicating whether the current year is a leap year or not.