Gregorian Calendar // zapamiętywanie warosci

0

Cześć, mam pytanie, muszę napisać plugin do netbeans'a, obliczający jego czas pracy. Postanowilem, ze najlatwiej będzie zrobić to pobierając date(godzina, minuta, sekunda, dzien, miesiac, rok) uruchomienia programu, która nastepnie bedzie odejmowana od daty zamknięcia. Nie wiem w jaki sposób zrobić odejmowanie tych danych(godzina, minuta, sekunda) od siebie. Drugim problemem jeste kwestia zapamietania daty uruchomienia i wyjscia do zmiennych.
Mam nadzieję, że wyraziłem się w miarę jasno.
Pozdrawiam.

0

Wydaje mi się że lepszym rozwiązaniem było by użycie TIMESTAMP. jest to ilość nanosekund które upłyneły od 1 stycznia 1970 roku. wystarczy wtedy że przy uruchomieniu zapiszesz wartość timestampa do jakiejś zmiennej potem przy zakończeniu też i odejmujesz wartość startu od wartości zamknięcia. dzięki temu uzyskasz ile nanosekund działał program. jeżeli będziesz chciał uzyskać dokładny czas wystarczy sobie przeliczyć na to co cię interesuje,czy to sekundy minuty dni czy miesiące myślę że z tym już nie będziesz miał problemu [browar]

0

Wolałbym użyć jednak GregorianCalendar, wiesz może jak to zrobic?

0

Przy aktywacji modułu tworzysz obiekt start z datą bieżącą. Przy deaktywacji modułu tworzysz drugi obiekt z datą zamknięcia. Moduł NB jest cały czas aktywny zatem nie ma potrzeby zapamiętywania. Jeszcze prościej jest użyć brute force java.util.Date.

0

Jak zapisać wartość początkowa do zmiennej, zeby potem mozna było ją odjąć od wartosci koncowej. ?


final class StartData {

    GregorianCalendar cal = new GregorianCalendar();
    int hour = cal.get(GregorianCalendar.HOUR_OF_DAY);
    int miunte = cal.get(GregorianCalendar.MINUTE);
    int second = cal.get(GregorianCalendar.SECOND);
}

final class StopData {

    GregorianCalendar cal = new GregorianCalendar();
    int hour = cal.get(GregorianCalendar.HOUR_OF_DAY);
    int miunte = cal.get(GregorianCalendar.MINUTE);
    int second = cal.get(GregorianCalendar.SECOND);
}

0
public class MyTimer{
    GregorianCalendar start = GregorianCalendar.newInstance();
    
    public int stop(){
           GregorianCalendar stop = GregorianCalendar.newInstance();

           // tu odejmowanie. na przykład w minutach
    }
}
0

Dobrze mam już obliczanie za pomocą:

          Date cal = new Date();
          final long time = cal.getTime();

czas zapisywany jest w milisekundach, jak przekonwerterowac to na $godzina:$minuta:$sekunda ?

0
long diff = stopTimeMillis - startTimeMillis;
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(dateFormat.format(diff));

Ustawienie strefy czasowej na GMT jest koniecznie, bo taka strefa jest ustawiona dla daty "0", tj. January 1, 1970 0000.000 GMT.

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