Year name to century name and decade name in Python
Here are some little helper functions to convert an integer year into a century
name and decade name, for example 1989
would be "20th Century"
and
"1980s"
.
from math import floor
def year_to_century_name(year: int) -> str:
century = (floor(int(year) / 100)) + 1
suffix = ordinal_suffix(century)
return f"{century}{suffix} Century"
def ordinal_suffix(num: int) -> str:
return {1: "st", 2: "nd", 3: "rd"}.get(
0 if 10 > num > 14 else num % 10, "th"
)
def year_to_decade_name(year: int) -> str:
decade = floor(int(year) / 10) * 10
return f"{decade}s"
We use this in Moment Wall Art to extract the century and decade of each piece, which allows for easy taxonomy pages like 20th Century Wall Art or 2020s Wall Art.