Zeitberechner

Status
Nicht offen für weitere Antworten.

Skipy

Mitglied
Hey!
Wir haben einen Gemeinschaftscomputer bei uns zu Hause. Jetzt will ich mit einem Programm die Computerzeit berechenen, die eine Person am Computer ist!
Ich stelle mir das so vor:
Das Programm wird automatisch gestartet und stoppt die Zeit, bis das Programm wieder beendet wird.
Diese Wird dann in eine "txt"-Datei reingeschreieben. Und beim nächsten Login, wird diese Zeit wieder mitberechnet.

Was sagt ihr dazu? Vorschläge, Tipps, etc?

Mein größtest Problem ist, das ich mich mit dem GregorianKalender am wenigsten auskenne.
Wie rechne ich zwei Zeiten zusammen oder bestimme, wie lange jemand am Computer war (Differenz, und wie ist das wenn ich von 23:00 Uhr bis 1:00 Uhr am Computer bin? -> -22:00 Uhr????)

Bitte um Hilfe - Danke!
viele Grüße aus Sigmaringen
Skipy
 

DP

Top Contributor
der gregoriancalendar macht das schon richtig, also nichts mit -22 uhr.

kommt drauf an was du willst... kannst ne normale exe in die autostar werfen oder einen service programmieren der den aktuall angemeldeten user ausliest und entsprechend speichert und ab stunde x die polizei ruft...
 

L-ectron-X

Gesperrter Benutzer
Wenn der Rechner startet holst Du dir die Zeit über ein Calendar-Objekt.
Code:
Calendar cal = Calendar.getInstance();
Um nun mit Zeit bzw. Datum zu rechnen besorgst Du die Zeit, die seit 01.01.1970 vergangen ist.
Rückgabewert ist die Zeit in Millisekunden.
Code:
long millis = cal.getTimeInMillis();
Diesen Wert kannst du dir "merken" oder bspw. per Objektserialisierung ganz leicht in eine Datei schreiben.
Beim Beenden der Benutzung ermittelst Du auf die gleiche Art und Weise die vergangene Zeit und subtrahierst beide Werte voneinander und schreibst diesen Wert (Zeit der Benutzung) wieder in die Datei.
Bei einem weiteren Start des Rechners ermittelst Du beim Start die Zeit (s.o.), merkst sie dir oder speicherst sie wieder ab und addierst die bereits erfasste, die du voher aus der Datei ausgelesen hast, zu einem neuen Wert.
Die Zeit zusammensetzen und anzeigen kannst Du dann ebenfalls mit den Methoden aus Calendar.
 

Skipy

Mitglied
Hört sich gut an *gg*

Gibt es da in Java auch so eine Art zähler, der quasi auf Knopfdruck anfängt zu zählen?
So Stoppuhr mäßig??
 

DP

Top Contributor
aber wenn du vom programmieren noch keine ahnung hast, kommste bei sowas mit visual basic schneller voran...
 

Skipy

Mitglied
Danke für den tipp!Mein Problem ist,
1) das ich kein Programm kenne um VB auf einem Macintosh zu programieren! Für Java kann ich Eclipse benutzen!
2) Wir machen Java in der Schule (TG), daher muss ich so oder so michmit der Spache beschäftigen und vertaur machen!


Aber noch eine andere Frage:
Gibt es nicht irgendein Befehl, der sich alle Sekunde (in Millesekunde) zu wiederholen hat!
Zum Beispiel das Repainten .... ????
Kann man das nicht dann irgendwie miteinander verbinden oder wäre das zu ungenau?
 

Sky

Top Contributor
Ja klar geht das. Entweder selber machen:

Code:
while (true) {
  // doIt
  //...
  Thread.sleep(1000); // 1 Sekunde
  //...
}

Oder besser: mal die Suche benutzen!!! Stichworte==Timer && TimerTask.
 

Dukel

Top Contributor
Ich würde das mit dem Windowseigenen Logging Mechanismus machen. Jeder bekommt einen User und bei Logins/ Logouts wird mitgeloggt.
Da ich diese Logs nie anschaue sollte man sich nur informieren, wie man das am besten auslesen kann.
 

Skipy

Mitglied
Bei Windows nicht schelcht, aber wie gesagt ich habe (leider -> zum glück) einen macintosh!
Vielleicht fällt dir da auch eine Lösung ein??+
Mfg.
Skipy
 

Dukel

Top Contributor
Skipy hat gesagt.:
Bei Windows nicht schelcht, aber wie gesagt ich habe (leider -> zum glück) einen macintosh!
Vielleicht fällt dir da auch eine Lösung ein??+
Mfg.
Skipy

Oh das hab ich überlesen.
Evtl. gibts ne ähnliche Funktion unter Mac. Das weiss ich nicht. Das neue OS X unterstützt ja schonmal Benutzer.
 

Skipy

Mitglied
Das OS hat benutzer auch schon unterstüz *;-)*
Es hat lediglich ein paar viele Funktionen mehr - die ich bei Windows sehr vermisse ....
(Ist aber glaube ich das falsche Forum *gg*)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben