Avatar billede mmmap Nybegynder
16. juni 2009 - 10:32 Der er 4 kommentarer og
1 løsning

Checke om tidspunkt ligger i en tidsperiode

Hej,

Jeg er stødt på et problem, da jeg skulle undersøge hvorvidt et tidspunkt lå i en bestemt tidsperiode.
Jeg har en Date med det nuværende tidspunkt, og vil undersøge om klokken er mellem klokken 22 og 6. Min nuværende kode ser således ud, men jeg er ikke kommet meget længere end til at oprette nogle variabler med tiden:

private boolean timeInPeriod() {
      Calendar cal = Calendar.getInstance();
      Date date = cal.getTime();
      int currentHour = time.getHours();
      int hourFrom = 22;
      int hourTo = 6;
     

Hvordan kan jeg gøre dette?

//madsanders
Avatar billede arne_v Ekspert
16. juni 2009 - 11:17 #1
if(hourFrom <= currentHour && currentHour < hourTo)

vil jeg tro
Avatar billede mmmap Nybegynder
16. juni 2009 - 11:36 #2
Det virker kun når tidperioden ikke paserer midnat, f.eks. hvis hourFrom = 6 og hourTo = 12. Hvis tidsperioden er mellem klokken 22 om aftenen og 6 om morgenen virker det ikke..

Jeg håber at vi kan finde en løsning på problemet..
Avatar billede arne_v Ekspert
16. juni 2009 - 11:56 #3
Ah. Der var problemet.

Kan du ikke splitte op i 2 situationer a la:

if(hourTo > hourFrom) {
    if(hourFrom <= currentHour && currentHour < hourTo) {
        // bingo
    }
} else {
    if(currentHour < toHour || fromHour <= currentHour) {
        // bingo
    }
}
Avatar billede mmmap Nybegynder
16. juni 2009 - 12:22 #4
Mange tak, din kode virker,

smid et svar :~)
Avatar billede arne_v Ekspert
16. juni 2009 - 12:50 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester