Odliczanie czasu do dzwonka/lekcji

0

Witam.
Pisze właśnie program na androida który wyświetla w ViewPagerze plan lekcji i w ActionBarze chciałbym aby wyświetlał następna lekcje/przerwę i ile pozostało czasu.

Time today = new Time(Time.getCurrentTimezone());
        today.setToNow();

        if(today.weekDay==1){
            if (today.hour < 7 && today.minute < 20) {
                actionBar.setTitle("Matematyka");
                int roznicaGodz = 7 - today.hour;
                int roznicaMin = 20 - today.minute+60;
                setSubtitle(roznicaGodz, roznicaMin);
            } else if (((today.hour == 7) && (today.minute >= 20)) || ((today.hour == 8) && (today.minute <= 4))) {

                actionBar.setTitle("Przerwa");
                int roznicaMin = 5 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 8) && (today.minute >= 5) && (today.minute <= 14)) {
                actionBar.setTitle("Matematyka");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 8) && (today.minute >= 15)) {
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 9) && (today.minute >= 0) && (today.minute <= 9)){
                actionBar.setTitle("WOS");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 9) && (today.minute >= 10) && (today.minute <= 55)){
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if (((today.hour == 9) && (today.minute >= 55)) || ((today.hour == 10) && (today.minute <= 4))){
                actionBar.setTitle("J. POLSKI");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 10) && (today.minute >= 5) && (today.minute <= 50)){
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if (((today.hour == 10) && (today.minute >= 50)) || ((today.hour == 11)&& (today.minute == 0))){
                actionBar.setTitle("PST");
                int roznicaGodz = 8 - today.hour;
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 11) && (today.minute >= 0) && (today.minute <= 45)){
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if (((today.hour == 11) && (today.minute >= 45)) || ((today.hour == 12) && (today.minute <= 5))){
                actionBar.setTitle("PST");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 12) && (today.minute >= 5) && (today.minute <= 50)){
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if (((today.hour == 12) && (today.minute >= 50)) || ((today.hour == 13)&& (today.minute == 0))){
                actionBar.setTitle("PST");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 13) && (today.minute >= 0) && (today.minute <= 45)){
                actionBar.setTitle("Przerwa");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if ((today.hour == 13) && (today.minute >= 45) && (today.minute <= 55)){
                actionBar.setTitle("PST");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            } else if (((today.hour == 13) && (today.minute >= 55)) || ((today.hour == 14) && (today.minute <= 40))){
                actionBar.setTitle("Koniec Lekcji");
                int roznicaMin = 15 - today.minute + 60;
                setSubtitle(roznicaMin);
            }

Lecz nie potrawie sobie poradzić z policzeniem różnicy czasu. Potrafi ktoś pomóc ? oraz czy jest jakiś lepszy sposób na napisanie tego ? 170 lin kodu na jeden dzień to trochę dużo :D

0

Słabo mi. Wody...
Wyobraź sobie że dzwonków jest 1000. Albo 1000000. Czy napisałbyś ten kod w ten sam sposób? Lekcja na dziś: tablice, mapy, pętle.

1

Prościej byłoby tak, że przy godzinie rozpoczęcia każdej lekcji i przerwy ustawiasz tytuł i rozpoczynasz odliczanie od 45 minut w dół (czy odpowiednio 15 albo ile ta przerwa trwa), niezależnie od tego, jaka lekcja i jaki dzień, po prostu lecisz od 45 w dół: timeLeft = (45 + startTime.minutes - currentTime.minutes)%60.

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