Datumsdiffernz

Status
Nicht offen für weitere Antworten.
A

Anfänger 0815

Gast
Hallo,

bevor ich gleich Mecker kriege, dass das doch alles schon gefragt wurde, ich habe ehrlich die Suchfunktion missbraucht, es abe nicht gefunden.
Also ich habe ein Applet geschrieben, das die Systemzeit des Rechners ausliest und dann in das GregorianCalendar-Format speichert und dann ausgibt.
Nun möcht ich gerne ein festes DAtum angeben können und davon die ständig aktualisierte Systemzeit abziehen, so dass ich habe noch x Monate, y Tage, .... z Sekunden bis zu diesem Datum.
Wie bekomme ich das hin? Ich kann ja nicht einfach zwei Calender-Typen subtrahieren!

Anfänger
 

foobar

Top Contributor
Code:
Date d1 = new GregorianCalendar(1999, 11, 31, 23, 59).getTime(); 
Date d2 = new Date(); 
long diff = d2.getTime() - d1.getTime( ); 
System.out.println("Difference between " + d2 + "\n" + "\tand Y2K is " + (diff / (1000*60*60*24)) + " days.");
 
A

Anfänger 0815

Gast
Bekomme ein negatives Ergebnis, weiß nicht genau woran das liegt.

Code:
 import java.awt.*;
 import java.util.GregorianCalendar;
 import java.util.Date;


 public class DigitalClock extends java.applet.Applet
     implements Runnable {

     Font theFont = new Font("TimesRoman",Font.BOLD,24);
     Thread runner;

     public void init() {
	setBackground(Color.white);
	}

     public void start() {
         if (runner == null) {
             runner = new Thread(this);
             runner.start();
         }
     }

     public void stop() {
         if (runner != null) {
             runner.stop();
             runner = null;
         }
     }

     public void run() {
         while (true) {
             repaint();
             try { Thread.sleep(1000); }
             catch (InterruptedException e) { }
         }
     }

     public void paint(Graphics g) {
	 Date ende = new GregorianCalendar(2004, 1, 31, 23, 59).getTime(); 
         Date theDate = new GregorianCalendar().getTime();
	 long diff = ende.getTime() - theDate.getTime();
         g.setFont(theFont);
	 g.drawString("" + theDate.get(theDate.DATE) + "." + (theDate.get(theDate.MONTH)+1) + "." + theDate.get(theDate.YEAR) + " " + theDate.get(theDate.HOUR) + ":" +  theDate.get(theDate.MINUTE) + ":" +  theDate.get(theDate.SECOND), 10, 50);
	 g.drawString("" + theDate.getTime(), 10, 50);
	 g.drawString("Zeit bis Ende des Praktikums: " + (diff/(1000*60*60*24)) + " Tage", 100, 20);     
	}
 }
 
A

Anfänger 0815

Gast
Die vorletztenbeiden g.drawString sind eigentlich auskommentiert, sorry. Es geht nur um das letzte.
 
A

Anfänger 0815

Gast
Ist ja klar, das ich ein negatives Ergebnis bekomme. Ein wenig peinlich sich so in der Öffentlichkeit zu blamieren.
Aber mir ist nicht ganz klar, warum ich mich trotzdem um einen Monat verrechne.

Anfänger
 
A

Anfänger 0815

Gast
Hätte gerne eine Ausgabe der Differenz:
w Tage, x Stunden, y Minuten und z Sekunden

habe aber keine richtige Idee
 
Status
Nicht offen für weitere Antworten.

Oben