Files
illogical-impulse/early/.config/eww/scripts/getfirstdayofmonth
T
2024-02-22 15:35:06 +07:00

39 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Thanks Bing!
# Check if the argument is a valid number
if [[ ! $1 =~ ^-?[0-9]+$ ]]; then
echo "Invalid argument: $1"
echo "Usage: getfirstdayofmonth [NUMBER]"
exit 1
fi
# Get the current month and year
current_month=$(date +%m)
current_year=$(date +%Y)
# Add the argument to the current month and adjust the year if needed
if [[ $1 -gt 0 ]]; then
next_month=$((current_month + $1))
next_year=$((current_year + ((next_month-1) / 12)))
next_month=$((current_month + ($1 % 12)))
else
next_month=$((current_month + $1))
next_year=$((current_year + ((next_month-12) / 12)))
next_month=$((current_month + ($1 % 12)))
fi
if ((next_month > 12)); then
next_month=$((next_month % 12))
elif ((next_month == 0)); then
next_month=12
# next_year=$((next_year - 1))
elif ((next_month < 1)); then
next_month=$(( (next_month + 12) % 12 ))
fi
# Get the weekday name (%A), day number (%d), month name (%B) and year (%Y) of the first day of the next month
first_day=$(date -d "$next_year-$next_month-01" '+%u %d %m %Y')
# Print the result
echo $first_day