Dopasowanie poprawnego słowa do liczby

Odpowiedz Nowy wątek
2011-07-18 12:27
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?

Pozostało 580 znaków

2011-07-18 12:45
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));
        }
edytowany 4x, ostatnio: remigio, 2011-07-18 12:57

Pozostało 580 znaków

2011-07-18 13:14
0

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

Pozostało 580 znaków

2011-07-18 13:37
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ć.)

edytowany 5x, ostatnio: Stendbeck, 2011-07-18 13:46

Pozostało 580 znaków

2011-07-18 15:54
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".


Not Found
The requested URL /wypasiona_sygnaturka.txt was not found in this brain.
-----
Human/1.0.00 (Earth) Server at Poland Port 65535

Pozostało 580 znaków

2011-07-18 17:54
O_o
0

Zostały trzy
Zostało siedem

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


O̾..͠o
Bo tylko w tym pięknym języku "wyjątek potwierdza regułę"... :D - Olamagato 2011-07-19 01:37
Bo tylko w tym pięknym języku wyjątków jest więcej niż reguł :D - O_o 2011-07-19 11:42

Pozostało 580 znaków

2011-07-19 11:14
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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