kostenloser Webspace werbefrei: lima-city


Java Countdown

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    stinger5

    Kostenloser Webspace von stinger5

    stinger5 hat kostenlosen Webspace.

    Hallo,

    Ich versuche gerade einen Countdown zu realisieren. Ich will diesen aber in Java und nicht JavaScript bauen. Da ich noch Anfänger in Java bin, komme ich im Moment nicht weiter, da ich nicht weis, wie man aus vorhanden variablen: jahr,monat,tag,std,min,sek einen Zeitstempel generieren kann.

    mfg
    stinger5
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*a

    Hallo,

    z. B. mit

    int minute = 0;
    int hour = 0;
    int date  = 26;
    int month = 1;
    int year  = 2007;
    long dt = new java.util.GregorianCalendar(year,month,date,hour,minute).getTimeInMillis()  ;


    kannst du an sowas wie den Zeitstempel kommen (Millisekunden, die seit 1970 vergangen sind). Sekunden muss man dann noch so dazuaddieren.

    Beitrag geaendert: 26.2.2007 20:58:00 von cga
  4. Autor dieses Themas

    stinger5

    Kostenloser Webspace von stinger5

    stinger5 hat kostenlosen Webspace.

    Hab jetzt leider das prob das ich nicht weis wie ich zur der variable den sekunden wert dazurechnen kann oder mit g.drawString ausgeben kann. bekomme immer irgendeine fehlermeldung.
    Es hängt sicherlich damit zusammen das es ja vom typ "long" ist, hab da aber noch nicht mit gearbeitet.
    Bin da wie gesagt noch anfänger und hab erst ein paar kleine Programme gebaut.
  5. c*a

    ich nicht weis wie ich zur der variable den sekunden wert dazurechnen kann


    Der Zeitstempel gibt die Anzahl der Millisekunden aus, die seit 1970 vergangen sind. 1000 Millisekunden = 1 Sekunde.
    Daher kannst du mit
    int seconds = 40;
    dt = dt + seconds*1000;

    die Sekunden dazuaddieren.

    long ist nur eine ganze Zahl so wie int, die einen größeren Wertebereich sein kann als int.
    Was ist denn das Objekt g und was kam für eine Fehlermeldung? Das musst du mir schon sagen, ich bin nämlich nicht der Spezialist auf dem Gebiet Appletprogrammierung. Wenn das Graphics sein sollte, ich glaube dann liegt der Fehler darin, dass die Funktion noch zwei weitere Parameter braucht (für die Stelle, wo der String hin soll).
    Dann nimmt deine Funktion auch nur einen String an (und konvertiert nicht automatisch).
    =>
    Es sollte
    String s = Long.toString(dt);
    g.drawString(s, 20, 20);
    eigentlich funktionieren.
  6. Autor dieses Themas

    stinger5

    Kostenloser Webspace von stinger5

    stinger5 hat kostenlosen Webspace.

    Super funktioniert jetzt bestens!
    Hab jetzt auch die Restzeit in ms.

    So jetzt hab ich nur noch schwierigkeiten bei der Umsetzung in ein vernünftiges Datum.

    Ich will nähmlich die Tage, std, min und sek aus der variable "rest" jetzt haben.


  7. c*a

    Ich will nähmlich die Tage, std, min und sek aus der variable 'rest' jetzt haben.


    Schau mal in der API-Documentation nach, ob du was findest: http://java.sun.com/j2se/1.4.2/docs/api/
    (bin zu faul danach zu graben)

    Wenn du nichts findest, Millisekunden lassen sich so in Tage, Stunden, usw umrechnen:

    Sagen wir, rest ist die Zeit bis zum Ablauf des Countdowns.
    long millis, seconds, minutes, hours, days;
    long tmp;
    
    millis = rest % 1000;
    tmp = rest / 1000;
    seconds = tmp % 60;
    tmp = tmp / 60;
    minutes = tmp % 60;
    tmp = tmp / 60:
    hours = tmp % 24;
    days = tmp / 24;


    (^^ sicherlich noch verbesserungsbedürftig)

    Klar, dass man modulo dafür braucht oder?
  8. Autor dieses Themas

    stinger5

    Kostenloser Webspace von stinger5

    stinger5 hat kostenlosen Webspace.

    Danke erst mal für die Hilfe. Leider gibts noch ein kleines Prob. Er zeigt mir z.B. wenn in 3 Std das Ziel erfüllt ist, dann an: 31 Tage und 3 Std. Also praktisch hat er jetzt immer einen ganzen Monat bei jeder Ausgabe drinne.

    Also ich könnte ja einfach -31 machen und fertig isses, aber mich würde mal interessieren wie das zustande kommt
  9. p**i

    Moin,

    wenn Du uns Deinen Code posten würdest, könnten wir eher eine Fehlersuche durchführen,
    anstatt erahnen zu müssen, wie Du das Ganze umgesetzt hast ;)

    Gruss,
    Puni
  10. c*a

    long dt = new java.util.GregorianCalendar(year,month,date,hour,minute).getTimeInMillis()  ;


    month wird hier ab 0 gezählt, nicht ab 1.
    d. h.

    Januar = 0
    Februar = 1
    März = 2 usw.

    deswegen wohl die 31 Tage zuviel.

    In der API-Documentation steht:


    MONTH

    public static final int MONTH

    Field number for get and set indicating the month. This is a calendar-specific value. The first month of the year is JANUARY which is 0; the last depends on the number of months in a year.


    Einfach mal nachschauen.
  11. bei mir liefs ich hab zwar nochn paar sachen geändert is aber hübsch ^^
  12. Hehe...ich habe mit einem Countdown einmal einen PC zum abstürzen gebracht. ob der wohl zu langsam für zum schnellen zählen war?
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!