Odmiana słowa minuta w c++ zależnie od czasu odjazdu

0

Hej,
muszę odmienić słowo minuta zależnie od pozostałej ilości czasu do odjazdu, ale nie za bardzo wiem ja kto zrobić (pomijając "łopatologiczny" sposób).
Chodzi o to, że mamy tekst "ODJAZD ZA x MINUT" i forma słowa zmienia się zależnie od ilości minut:
1 - minutę
2,3,4, - minuty
5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 - minut
22, 23, 24 - minuty
25, 26, 27, 28, 29, 30, 31 - minut

itd. itd.

nie za bardzo widzę tutaj jakąś zbieżność by wyliczyć to np. jakimś modulo czy czymś, tak jak się to robi np. w przypadku normalnych liczb w języku angielskim (1st,2nd,3rd etc)
byłbym bardzo wdzięczny za pomoc, wydaje mi się ze jest to bardzo proste tylko mój mózg coś nie trybi :D

1

Ok, znalazłem rozwiązanie, teraz aż mi trochę głupio. Znalazłem jakąś funkcję z tego tematu: Odmiana słów
przerobiłem pod minuty i działa, wielkie dzięki Panu CeKa :D

1

Przejdź na język na angielski, szach mat.

0

W czym piszesz? Może jest gotowe rozwiązanie?
Przykładowo Qt funkcja QObject::tr używana do lokalizacji aplikacji (różne wersje językowe), ma opcję zmiany tłumaczenia zależnie od wartości liczby podanej jako ostatni argument.
https://doc.qt.io/qt-5/i18n-source-translation.html#handling-plurals

0

https://www.unicode.org/cldr/charts/34/supplemental/language_plural_rules.html#pl

Po prawej masz “rules”. i to liczba całkowita która cię interesuje. v możesz zignorować (v = 0), bo dotyczy floatów.
Czyli zostaje ci:

Category Rules
one i = 1
few i % 10 = 2..4 and i % 100 != 12..14
many i != 1 and i % 10 = 0..1 or i % 10 = 5..9 or i % 100 = 12..14

dokładne znaczenie literek jest tutaj:

http://unicode.org/reports/tr35/tr35-numbers.html#Plural_Operand_Meanings

3

Zrób skrót min.

1 użytkowników online, w tym zalogowanych: 0, gości: 1