Dopasowanie poprawnego słowa do liczby

0

Witam

Pisze program obliczający ile miesiący zostało do jakieś ustalonej daty.

Program wyświetla komunikat w postaci "Do dnia {data} zostało {liczba_miesiecy} miesięcy"

i chodzi o to zeby to"miesięcy" było poprawną formą zależnie od liczby czyli dla 1 ma być "miesiąc" dla 2,3,4 "miesiące"(dla liczb kończących się na te cyfry też) dla pozostałych standardowo "miesięcy"

Na myśl od razu nasuwają mi się wyrażenia regularne ale niestety NIE MA ich w J2ME:(

Jak można to zrobić inaczej?

0

mi przychodzi na myśl doklejanie
np.

 
        int month = 5;
        String mon = "miesi", x = "ąc", y = "ące", z = "ęcy";
        if (month > 1 && month <= 4) {
            System.out.println(mon.concat(y));
        } else if (month >= 5) {
            System.out.println(mon.concat(z));
        } else {
            System.out.println(mon.concat(x));
        }
0

a np jak będzie 23 - zostało 23 miesięcy czy miesiące ?

0

Jeśli chcecie iść tą drogą, to zamiast liczby miesięcy, wystarczy porównać resztę z dzielenia tej liczby przez 10, dzięki czemu będziesz porównywał tylko ostatnią cyfrę tej liczby, np:
if (month%10 > 1 && month%10 <= 4)
wtedy niezależnie czy będziesz miał 3, 23, czy 143 otrzymasz słowo "miesiące"
(nie zapomnij dodać obsługi dla "0". Dodatkowo dla wartości "1" powinno być "miesiąc" a dla "x1"(jakiejkolwiek liczby kilku cyfrowej z cyfrą 1 na końcu z wyjątkiem jednocyfrowej liczby 1) "miesięcy", też trzeba to uwzględnić.)

0

Wciąż źle.
11 miesięcy, 12 miesięcy, 13 miesięcy, 14 miesięcy, 15 miesięcy... ZONK!
Jeżeli 2. cyfrą od końca jest '1', to zawsze będzie forma "miesięcy".

0

Zostały trzy
Zostało siedem

Wznosze toast za nasz piękny acz nielogiczny język :)

0

No to albo napiszesz klasę świadczącą "usługi językowe" :), albo zrób to w formie powiedzmy tabelki:

Pozostało: Miesięcy: Dni: Godzin:
25 12 8

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