2014-04-19 17 views
10

Proste pytanie, ale nie mogłem go znaleźć:Jaki jest zakres HOUR_OF_DAY?

Czy zakres HOUR_OF_DAY wynosi od 0 do 23 lub od 1 do 24?

chcę losową HOUR_OF_DAY, muszę:

 int randomHour = (int) (Math.random()*24); 

lub

 int randomHour = (int) (Math.random()*24+1); 
+3

To od 0 do 23, jak można odkryć za pomocą prostego eksperymentowania. Nie użyłbym jednak 'Math.random() * 24' - użyłbym' Random.nextInt (24) '. –

+0

Znalazłem to na własnej skórze. Java simpledateformat używa zakresu 1-24 (tak, że kwadrans po północy jest 24:15). Spędziłem długi czas debugowania. – q335r49

Odpowiedz

24

Od the documentation: numer

Pole do pobierania i ustawiania wskazujący godzinę dnia . HOUR_OF_DAY służy do 24-godzinnego zegara. Na przykład, przy 10: 04: 15.250 PM HOUR_OF_DAY jest 22.

Jeśli 10: 04: 15,250 PM HOUR_OF_DAY 22, które uczyniłoby zakresie 0 - 23. Jeśli byłby to 1 do 24, 10 p.m. byłoby 23. To byłoby złe na tak wielu poziomach. :-)

6

To jest 0-23.

Ja testowałem go uruchamiając poniżej kod

Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.HOUR_OF_DAY, 24); 
    System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); 

wyjściowa wynosi 0.

Jeśli prowadzisz

calendar.set(Calendar.HOUR_OF_DAY, 23); 

wyjściowa będzie 23.

Jeśli prowadzisz

calendar.set(Calendar.HOUR_OF_DAY, 25); 

wyjściowa będzie 1.

1

zakres wynosi od 0 do 23

Run to

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY); 
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); 

Jeśli czas jest 12 AM wyjście będzie 0

i jeśli czas jest 11 PM wyjście będzie 23

Powiązane problemy