Skip to content

Instantly share code, notes, and snippets.

@CubexX
Created July 13, 2018 22:15
Show Gist options
  • Save CubexX/182bd5918d3455d986b354eadaea02ce to your computer and use it in GitHub Desktop.
Save CubexX/182bd5918d3455d986b354eadaea02ce to your computer and use it in GitHub Desktop.
Python plural russian days / Склонение день/дня/дней
def plural_days(n):
days = ['день', 'дня', 'дней']
if n % 10 == 1 and n % 100 != 11:
p = 0
elif 2 <= n % 10 <= 4 and (n % 100 < 10 or n % 100 >= 20):
p = 1
else:
p = 2
return str(n) + ' ' + days[p]
@Kycko
Copy link

Kycko commented Dec 3, 2021

Perfect! 😍😋

@lilrock1981
Copy link

Very good!!!!!!

@mafiStudios
Copy link

thx.

@denny4-user
Copy link

denny4-user commented Aug 15, 2024

I did something, I didn’t do something, thanks to everyone, here’s the shortest (it seems to me) code

def plural_days(days: int):
    if days % 10 == 1 and days % 100 != 11:
        return f"{days} день"
    elif 2 <= days % 10 <= 4 and (days % 100 < 10 or days % 100 >= 20):
        return f"{days} дня"
    return f"{days} дней"

😁😁😁

def plural_days(days: int):
    if days % 10 == 1 and days % 100 != 11:
        return f"{days} день"
    return f"{days} дня" if 2 <= days % 10 <= 4 and (days % 100 < 10 or days % 100 >= 20) else f"{days} дней"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment