You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, November 8th 2006, 10:02pm

PROBLEM: Zeitrechner (Uhrzeiten voneinander abziehen)

Hallo!
Ich möchte mir einen Arbeitszeitrechner erstellen. Dazu habe ich 2 Felder, in die ich einmal die gekommen-Zeit im Format hh:mm eintrage, und ein Feld, in das ich die gegangen-Zeit eintrage (ebenfalls im Format hh:mm). Anschließend will ich die gegangen-Zeit minus die tägl. Soll-Arbeitszeit minus die gekommen-Zeit rechnen, um so an den Tagessaldo zu kommen.
Nun zu meinem Problem: Die eingegebenen Daten sind Strings. Wie kann ich diese in Zeiten umwandeln, bzw. wie kann ich 2 Uhrzeiten voneinander abziehen? Wäre für einen kleinen Code-Ausschnitt sehr dankbar. Ich habe nämlich absolut keinen Plan, wie ich das machen soll.
Vielen Dank schonmal, schöne grüße Rudi

2

Wednesday, November 8th 2006, 10:21pm

Hi,
generell kannst du dafür die klasse Date verwenden
String nach Integer casten und dann ab in den konstruktor:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html

Quoted

Date

@Deprecated
public Date(int year,
int month,
int date,
int hrs,
int min)

Deprecated. As of JDK version 1.1, replaced by Calendar.set(year + 1900, month, date, hrs, min) or GregorianCalendar(year + 1900, month, date, hrs, min).

Allocates a Date object and initializes it so that it represents the instant at the start of the minute specified by the year, month, date, hrs, and min arguments, in the local time zone.

Parameters:
year - the year minus 1900.
month - the month between 0-11.
date - the day of the month between 1-31.
hrs - the hours between 0-23.
min - the minutes between 0-59.


Mit folgendem findest du dann die differenz in millisekunden heraus

Java Quellcode

1
long diff = start.getTime() - end.getTime();


Die Millisekunden kannst du dann wieder in eine ordentliche Zeitausgabe umwandeln
Hier ein Code für Sekunden:
http://www.easy-coding.de/java-sekunden-in-zeit-t413.html

3

Wednesday, November 8th 2006, 10:28pm

cool. danke schonmal für die Hilfe. Werd ich morgen direkt ausprobieren!Schöne Grüße RUdi

4

Thursday, November 9th 2006, 8:06pm

Klappt leider immer noch nicht .-/

So, habe das jetzt mal ausprobiert: Also irgendwie klappt die Sache immer noch nicht so ganz. Wenn ich jetzt aus den Sekunden, die hierbei rauskommen :

Date komm = new Date(2006, 11, 09,stdKomm, minKomm);
Date gehe = new Date(2006, 11, 09, stdGehen, minGehen );
long diff = gehe.getTime() - komm.getTime();

diese Funktion anwende:

long stunde = diff / 3600;
long minute = diff / 60 - (stunde*60);

kommen ziemlich seltsame Zahlen raus. Die ergeben irgendwie keinen Sinn. Wenn meine Kommen-Zeit 06:00 und meine Gehen-Zeit 14:05 ist, kommen diese Zaheln da raus:

stunde = 8083
minute = 20

Wenn ich als Kommen-Zeit 06:00 und Gehen-Zeit 08:00 eingebe, kommt das raus:

stunde = 2000
minute = 0

Dies finde ich auch recht seltsam. Ich hoffe mir kann jemand helfen, bzw. sagen was ich Dummi falsch mache :-/

Schöne Grüße
Rudi

5

Thursday, November 9th 2006, 8:16pm

getTime liefert Millisekunden
also einfach mit 1000 dividieren

6

Thursday, November 9th 2006, 8:33pm

Ups, danke! das wusste ich nicht :(
Also für die Stunden krieg ich das hin, nur wenn ich die minuten noch durch 1000 teile, kommt da wieder was ganz komisches raus*g*
Wie müsste der Code dann für die Minuten aussehen? Weißt du das zufällig?

long stunde = diff / 3600 / 1000; //das hier ist schon verbessert
long minute = diff / 60 - (stunde*60); //wie muss ich das hier machen?

Auf jeden Fall schonmal danke für die Hilfe bis hier hin!!

7

Thursday, November 9th 2006, 10:03pm

kein Problem..
du musst aber schon direkt das diff ändern

Java Quellcode

1
long diff = (gehe.getTime() - komm.getTime())/1000;


Dann musst du auch am weiteren Algorithmus nichts modifizieren

8

Thursday, November 9th 2006, 10:08pm

oh man ey, da siehst du mal, wa ich für ein vogel bin ;)
auf sowas leichtes komm ich manchmal einfach nicht. danke, jetzt klappt es!! und danke für die gedult mit mir ;)

Social bookmarks