Wątek o określonej porze

0

Witam,
Chciał bym napisać wątek który będzie włączał się o konkretnej porze, np o 1600.

        int runHour = 17;
        int runMinute = 55;

        timer = new Timer();
        GregorianCalendar runTime = new GregorianCalendar();

        if( runTime.get(Calendar.HOUR_OF_DAY) >= runHour && runTime.get(Calendar.MINUTE) >= runMinute ) {
            runTime.add(Calendar.DAY_OF_MONTH, 1);
            runTime.add(Calendar.MINUTE, 1);
        }

        runTime.set(Calendar.HOUR_OF_DAY, runHour);
        runTime.set(Calendar.MINUTE, runMinute);
        runTime.set(Calendar.SECOND, 0);

        timer.schedule(new Task(this), runTime.getTime(), delay);

Teoretycznie działa, lecz czasami podczas włączenia programu odpala się mimo iż nie ma określonej godzinny.

1

http://stackoverflow.com/questions/22163662/how-to-create-a-java-cron-job

Tutaj w 2 poście masz pokazane jak to zrobić z użyciem biblioteki quartz. Używając jej będziesz miał pewność że wszystko zadziała jak chcesz i do tego możesz łatwo ustawiać interwały jak w cron.

4

biedny kotek

Wykorzystaj klasy Javy 8 do obsługi czasu i będzie Ci łatwiej policzyć przed, po oraz ile zostało:
https://docs.oracle.com/javase/tutorial/datetime/iso/period.html

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