long datum splitten in day etc

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo,
bin die ganze zeit schon auf der suche damit ich mein datum (in sekunden) in
die verschiedenen party wie monat,tag,minute etc aufsplitten kann.

hat jemand was passendes dazu ?

danke
 
S

SlaterB

Gast
Sekunden seit 1970?
dann mit 1000 multiplizieren,
new Date(millisec)
und aus dem Date noch einen GregorianCalendar machen,
den kannst du dann nach einzelnen Feldern fragen
 
G

Guest

Gast
guten morgen,
also irgendwie will das nicht so recht. könntest du nochma drüber schaun bitte ??


Code:
Date aktDat = new Date();
    	 long aktDatlong = aktDat.getTime();
    	 long aukEnde = convertedDate_ende.getTime();
    	    
    	 long restTime = aukEnde-aktDatlong;
    	    
    	   // String bldfa = dateFormat.format(new Date(restTime));
    	    
    	 //restTime = restTime * 1000;
    	 Date dateTime = new Date(restTime);

         Calendar cal=Calendar.getInstance();
         cal.setTime(dateTime);

         int day = cal.get( Calendar.DAY_OF_WEEK ) ;    
         int hour = cal.get( Calendar.HOUR ) ;    
         int sec = cal.get( Calendar.SECOND ) ;    
         int min = cal.get( Calendar.MINUTE ) ;

endzeit: 31.10.2007 18:00:00 ( convertedDate_ende)

soll halt die zeit bis zum ablaufen ausrechnen und in tagen ,stunden etc angeben.
das mit dem *1000 funktioniert nicht so recht. wenn ich das mache springen die tage,stunden und minuten im sekundentagt auf einen anderen wert. ohne das läuft die zeit ganz normal.
nur die ausgabe stimmt nicht so ganz.
ich bekomme als ausgabe :

4 Tage 10 Stunden 22 min45 sekunden


hast du ne idee woran das liegen könnte ??


vielen dank !
 
S

SlaterB

Gast
> das mit dem *1000 funktioniert nicht so recht.

bezog sich auf deine Aussage von 'Sekunden', die auf Millisekunden umzurechnen wären,
wenn du direkt Millisekunden hast, dann wäre dieser Schritt natürlcih hinderlich ;)

> nur die ausgabe stimmt nicht so ganz.
> ich bekomme als ausgabe :

geniale Aussage ohne Angabe sowohl von Start- als auch Enddatum ;)

wenn eins davon die aktuelle Systemzeit ist, dann schreibe trotzdem dazu, zu welcher Uhrzeit du den Test ausgeführt hast,
bzw. ganz simpel System.out.println von start und end dazu,

Code:
class Test
{
    public static void main(String args[])
        throws Exception
    {
        String date = "31.10.2007 18:00:00";
        SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
        Date convertedDate_ende = df.parse(date);

        System.out.println("Ende     : " + df.format(convertedDate_ende));
        Date aktDat = new Date();
        System.out.println("Anfang   : " + df.format(aktDat));
        long aktDatlong = aktDat.getTime();
        long aukEnde = convertedDate_ende.getTime();

        long restTime = aukEnde - aktDatlong;

        // String bldfa = dateFormat.format(new Date(restTime));

        // restTime = restTime * 1000;
        Date dateTime = new Date(restTime);
        System.out.println("Differenz: " + df.format(dateTime));
        Calendar cal = Calendar.getInstance();
        cal.setTime(dateTime);

        int day = cal.get(Calendar.DAY_OF_WEEK);
        int hour = cal.get(Calendar.HOUR);
        int sec = cal.get(Calendar.SECOND);
        int min = cal.get(Calendar.MINUTE);

        System.out.println(hour+":"+min+":"+sec);
    }
}

->

Ende     : 31.10.2007 18:00:00
Anfang   : 18.10.2007 09:52:22
Differenz: 14.01.1970 10:07:37
10:7:37

was willst du eigentlich mit Calendar.DAY_OF_WEEK, dem Wochentag?

bei vielen Tagen muss man irgendwann auch Monate mit bestimmten Längen oder gar Schaltjahre berücksichtigen,
in der Dimension ist es vielleicht besser, die Differenz in Millisekunden selber umzurechen,
/ 1000 = Sekunden
/ 1000 *3600 = Stunden
usw
 
G

Guest

Gast
hmm anschein liegt es an den long werten.
aber ich versteh nicht ganz wieso er das so komisdch umrechnet.

Code:
Date aktDat = new Date();
    	 long aktDatlong = aktDat.getTime();

aktDat dabei gibt er ganz normal das datum aus. wenn ich aber aktDatlong ausgebe bekomme ich :1192694100718 raus.
was umgerechnet Freitag 13.12.1901 21:45:52 hergibt. (auf einer website:"http://www.webstyleboard.de/wsb/gen_time.php")

wieso ?
 
S

SlaterB

Gast
und wenn du die Zahl bei deiner Bank eingibst hast du eine Menge Geld, na und?

du kannst nicht Äpfel mit Birnen vergleichen,
Java-Timestamp != Unix-Timestamp
 
G

Guest

Gast
ich bin ja nur auf der suche nach meinem fehler. finde ihn nicht. hast du ne idee wie ich das rausbekommen kann ? oder siehst du einen fehler ??

danke
 
S

SlaterB

Gast
hast du mein Posting von 9:51 vor deinem gesehen?
welche Frage ist aktuell offen?
 

Murray

Top Contributor
Was passiert hier?
Code:
      long aktDatlong = aktDat.getTime();
        long aukEnde = convertedDate_ende.getTime();
          
        long restTime = aukEnde-aktDatlong;
        Date dateTime = new Date(restTime);
restTime enthält die Differenz zweier absoluter Datumswerte und damit einen Zeitraum in Millisekunden. Wenn du damit wieder ein Datum intialisierst, beommst du einen Zeitpunkt, der um exakt diesen Zeitraum hinter dem 1.1.1970, 0:00 liegt.
 
G

Guest

Gast
stimmt das posting hatte ich echt übersehen. alles klar dann veruch ichs jetzt mit "manueller" umrechnung.
danke dir
 
G

Guest

Gast
@Murray
ja das hab ich auch schon rausgefunden :) bekomme dann 14.01.1970 oder so raus.

aber das ist doch eig egal oder ? weil ich ja nur aus diesem wert dann die stunden und minuten etc haben will.
das ganze soll fuer eine art auktionshaus sein.
und da ziehe ich die aktuelle zeit von der endzeit der auktion ab um herauszubekommen wie lange diese noch läuft.
 
G

Guest

Gast
hmm...




Code:
 int days = (int)restTime / (  60 * 1000 );
         int hours = (int)restTime / ( 60 * 60 * 1000 );
         int minutes = (int)restTime /( 24*60*60*1000);


ergebnis: 19218 Tage 320 Stunden 13 min26 sekunden

endzeit ist 31.10.2007 um 18:00 - aktuelle zeit: 18.10.2007 10:44

daraus der timestamp und so wie oben beschrieben umgerechnet.

ich fass es einfach nicht. :(
 
G

Guest

Gast
also wenn ich das ohne manuelles ausrechnen mache dann sieht das ganze so aus :

verbleibende zeit: 1970-01-14 09:09:08 -- 14 Tage 9 Stunden 9 min8 sekunden


also restTime in Date umgewandelt ergibt das Datum:1970-01-14 09:09:08

was ja auch mit der verbleibenden zeit übereinstimmt. also muss was beim errechnen der restzeit schief laufen.. =/
 
S

SlaterB

Gast
> ergebnis: 19218 Tage 320 Stunden 13 min26 sekunden
> ich fass es einfach nicht.

wenn du nur Quatsch ausrechnest, dann ist das eben so,
aber warum fängst du auch so kompliziert an

vergiss Millisekunden und deine Dati völlig und fange mit
int sekunden = 61; an
und versuche das korrekt in min + sec umzurechnen

dann höhere Sekunden-Zahlen, bald bei 3700, wo dann die Min. die 60 übersteigen dürften
-> nun Stunden mit einbeziehen

usw. Schritt für Schritt programmieren, nicht gleich Milliarden Millisekunden perfekt umwandeln

---------

> also wenn ich das ohne manuelles ausrechnen mache dann sieht das ganze so aus :
> also muss was beim errechnen der restzeit schief laufen.. =/

was genau stört dich am Ergebnis?
oder beziehst du dich noch auf die Fehler in der Divisionsrechnung (19218 Tage 320 Stunden 13 min26 sekunden )?
 
G

Guest

Gast
habe es so gemacht:


long day = restTime/(24 * 60 * 60 * 1000);
long hour = (restTime % (24 * 60 * 60 * 1000))/(60 * 60 * 1000);
long mins = (restTime % (60 * 60 * 1000))/60000;

es geht jetzt EIGENTLICH auch .. aber nicht richtig.
es funktioniert immer wunderbar. ausser wenn der tag im monat mehr als 28 tage hat.

also bis 27tage zeit er alles normal an. ab dem 28ten tag macht er +1 stunde.

weisst du warum ?
 
G

Guest

Gast
irgednwie muss ich dann ja noch einen richtigen kalender einbauen. wenn ich dann in den november reinkomme dann zieht er ab dem 10ten november auch einen tag ab !?....

hmm..
 
S

SlaterB

Gast
> weisst du warum ?

??? ab ins Irrenhaus! wie zum Teufel soll ich denn beurteilen was in deinen Program bei irgendeinem komischen Monatswechsel passiert?

wie dämlich kann man nur sein.., ab einen gewissen Punkt sage ich das ganz offen
B E I S P I E L (E)!!!


Code:
class Test
{
    static SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
    static long hourMS = 60 * 60 * 1000;
    static long dayMS = 24 * hourMS;

    public static void main(String args[])
        throws Exception
    {
        teste("10.11.2007 18:00:00");
        teste("11.11.2007 18:00:00");
        teste("12.11.2007 18:00:00");
        teste("13.11.2007 18:00:00");
        teste("14.11.2007 18:00:00");
        teste("15.11.2007 18:00:00");
        teste("16.11.2007 18:00:00");
        teste("17.11.2007 18:00:00");
        teste("18.11.2007 18:00:00");
        teste("19.11.2007 18:00:00");
        teste("20.11.2007 18:00:00");
    }

    public static void teste(String date)
        throws Exception
    {
        Date convertedDate_ende = df.parse(date);

        System.out.println("Ende     : " + df.format(convertedDate_ende));
        Date aktDat = new Date();
        System.out.println("Anfang   : " + df.format(aktDat));
        long aktDatlong = aktDat.getTime();
        long aukEnde = convertedDate_ende.getTime();
        long restTime = aukEnde - aktDatlong;


        long day = restTime / dayMS;
        long hour = (restTime % dayMS) / hourMS;
        long mins = (restTime % hourMS) / 60000;
        System.out.println(day + ", " + hour + ", " + mins);
        System.out.println();
    }
}

-> 
Ende     : 10.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
23, 6, 47

Ende     : 11.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
24, 6, 47

Ende     : 12.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
25, 6, 47

Ende     : 13.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
26, 6, 47

Ende     : 14.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
27, 6, 47

Ende     : 15.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
28, 6, 47

Ende     : 16.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
29, 6, 47

Ende     : 17.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
30, 6, 47

Ende     : 18.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
31, 6, 47

Ende     : 19.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
32, 6, 47

Ende     : 20.11.2007 18:00:00
Anfang   : 18.10.2007 12:12:49
33, 6, 47

läuft ohne Probleme
 
G

Guest

Gast
hmm.. bin ich denn verrückt ?? :p

bei dir ist doch auch der fehler ?!?! oder ?


Ende : 13.11.2007 18:00:00
Anfang : 18.10.2007 12:12:49
26, 6, 47


es sind ja nicht 6 stunden sondern nur 5 + 47 minuten. den gleichen fehler hab ich ja auch =/
 

Murray

Top Contributor
Anonymous hat gesagt.:
hmm.. bin ich denn verrückt ?? :p

bei dir ist doch auch der fehler ?!?! oder ?


Ende : 13.11.2007 18:00:00
Anfang : 18.10.2007 12:12:49
26, 6, 47


es sind ja nicht 6 stunden sondern nur 5 + 47 minuten. den gleichen fehler hab ich ja auch =/

Ist schon korrekt - in das Intervall fällt ein gemeiner Sonderfall (Tip: solche Sonderfälle gibt es zweimal im Jahr) :wink:
 
G

Guest

Gast
@Murray
wie meinste das mit 2x im jahr ?
der fehler ist in jedem bsp von slater.
oder hab ich des falsch versanden ?
 
S

SlaterB

Gast
> es sind ja nicht 6 stunden sondern nur 5 + 47 minuten. den gleichen fehler hab ich ja auch =/

na zumindest findet er weder bei der 27/28 Tag-Grenze noch am erwähnten 10. November statt, wie soll ich den also von selst finden? ;)
 

Murray

Top Contributor
Was passiert mit der Uhrzeit am letzten Oktoberwochenende? Ist da die Nacht von Samstag auf Sonntag vielleicht irgendwie länger als sonst??
 
G

Guest

Gast
oh man... alles klar... trottel ich .... tut mir leid.. :) habs schoa gerallt
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
krgewb Long wird gerundet Java Basics - Anfänger-Themen 2
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
javapingu Hex String zu long Java Basics - Anfänger-Themen 2
J Long Typ Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
O Long[] in long Java Basics - Anfänger-Themen 3
D Compiler-Fehler Java long und int Java Basics - Anfänger-Themen 1
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
Hanschyo String kann nicht Werte von Long annehmen Java Basics - Anfänger-Themen 2
Orkanson Long Binär darstellen Java Basics - Anfänger-Themen 1
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
J Datentypen Literal überschreitet long-Range, dennoch als long an Variable übergeben Java Basics - Anfänger-Themen 9
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
M Frage Long Wert in Java Java Basics - Anfänger-Themen 1
A Long in BigInteger Java Basics - Anfänger-Themen 3
T long wird ohne Nachkommastellen ausgegeben Java Basics - Anfänger-Themen 5
G Long und Frage zum Speicherplatz eines Arrays Java Basics - Anfänger-Themen 7
S OOP long prüfen Java Basics - Anfänger-Themen 5
B map.remove(long) Java Basics - Anfänger-Themen 5
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Zufälliger Long Java Basics - Anfänger-Themen 15
SheldoN Zahlen die über long-Wert hinausragen Java Basics - Anfänger-Themen 4
H TreeMap<> statt TreeMap<Long, String> Java Basics - Anfänger-Themen 2
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
G Long oder int Vorzeichen entfernen Java Basics - Anfänger-Themen 3
M Datentypen Calender TimeInMillis - long number erzeugen? Java Basics - Anfänger-Themen 2
D Konvertierung UnsignedInt zu long Java Basics - Anfänger-Themen 5
A long Wert in hexadezimales Array umwandeln Java Basics - Anfänger-Themen 3
A string bitweise in long umwandeln Java Basics - Anfänger-Themen 7
A Konvertierung String-->hex-->long Java Basics - Anfänger-Themen 7
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Datentypen Ein long[]-Array. Java Basics - Anfänger-Themen 5
G Datentypen Eclipse akzeptiert 'long' nicht Java Basics - Anfänger-Themen 2
N Mit long rechnen Java Basics - Anfänger-Themen 2
W Long to String Java Basics - Anfänger-Themen 7
B Long als Eingabeaufforderung Java Basics - Anfänger-Themen 3
H Long (64Bit) in 2 int (32Bit) zerlegen Java Basics - Anfänger-Themen 2
S Long und Float Frage Java Basics - Anfänger-Themen 2
N Datentypen Wurzel aus long ziehen Java Basics - Anfänger-Themen 4
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
A mdoulo methode mit long Java Basics - Anfänger-Themen 9
Binary.Coder Skalarprodukt mittels long und binärzahlen Java Basics - Anfänger-Themen 5
A Long zu Double Java Basics - Anfänger-Themen 4
B (long)1e9 Java Basics - Anfänger-Themen 6
V wozu ist das 'L' beim long notwendig ? Java Basics - Anfänger-Themen 5
J Länge eines long wertes Java Basics - Anfänger-Themen 13
S Division von long! Java Basics - Anfänger-Themen 4
Spot84 long von getCreationDate in String umwandeln Java Basics - Anfänger-Themen 4
S Probleme beim Umwandeln von Long nach Int Java Basics - Anfänger-Themen 4
G long[] aus SQL-Abfrage Java Basics - Anfänger-Themen 3
G String in Long casten Java Basics - Anfänger-Themen 2
N long geteilt durch long gleich null ? Java Basics - Anfänger-Themen 8
G int gleich long ? Java Basics - Anfänger-Themen 2
J A Long. way Java Basics - Anfänger-Themen 10
T Probleme mit long Java Basics - Anfänger-Themen 2
G NumberFormatException bei double und long Java Basics - Anfänger-Themen 11
G long zu kurz Java Basics - Anfänger-Themen 5
G Konvertierung String in long type Java Basics - Anfänger-Themen 15
G Zahlen >long verwenden Java Basics - Anfänger-Themen 7
G Problem beim rechenen mit long Java Basics - Anfänger-Themen 3
G long oder double Java Basics - Anfänger-Themen 15
C Long -> String -> ArrayList adden -> Exception Java Basics - Anfänger-Themen 4
M long in byte[] konvertieren und wieder zurück Java Basics - Anfänger-Themen 2
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
M Quersumme einer long zahl Java Basics - Anfänger-Themen 4
M long Datentyp effizient mit Daten füllen Java Basics - Anfänger-Themen 2
F Long umwandeln und auf 2 Dezimalen runden? Java Basics - Anfänger-Themen 14
G long in string Java Basics - Anfänger-Themen 6
G long-Zeitwert Java Basics - Anfänger-Themen 11
P "Line too long" bei der Generierung des jars. Java Basics - Anfänger-Themen 5
B String <> long --- Das ist doch nicht inkonvertibel? Java Basics - Anfänger-Themen 4
F Long zu 2 int und zurück Java Basics - Anfänger-Themen 3
G Hexadezimalzahl von String in Long umwandeln Java Basics - Anfänger-Themen 3
P von long zu int umwandeln? Java Basics - Anfänger-Themen 3
A formatieren long(bytes) -> String Java Basics - Anfänger-Themen 2
T long in Vector speichern Java Basics - Anfänger-Themen 16
G "cannot convert from long to int" - problem Java Basics - Anfänger-Themen 9
G Vergleich zweier 'long'-Werte. Problem! Java Basics - Anfänger-Themen 6
M long nach String casten Java Basics - Anfänger-Themen 2
N x.toString(x); umwandlung von long in String Java Basics - Anfänger-Themen 3
P Wie mach ich aus Int ein Double oder Long ? Java Basics - Anfänger-Themen 6
N unsigned int to long Java Basics - Anfänger-Themen 5
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
T Datum als Variable wert Java Basics - Anfänger-Themen 4
T Datum in die als Variabelwert Java Basics - Anfänger-Themen 5
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben