Ich verzweifle langsam, und hoffe ihr könnt mir helfen.
Ich möchte 2 Dati (YYYY:MM: DD:HH) mit Stundenangabe mit einer anderen solchen Angabe vergleichen und die Differenz ausrechnen.
Zuerst hatte ich keinen Plan wie das funktionieren soll, doch dann bin ich auf eine (Teil)lösung gestoßen. Ich habe so Jahre Monate Tage in Stunden umgerechnet, dann die beiden Werte subtrahiert. Alles schön und gut, jedoch habe ich als Annahme dass es keine Schaltjahre gibt und jedes Monat 30 Tage hat.
Um diese Annahme zu beseitigen fehlt mir jedoch jeglicher Ansatzpunkt.
Hier der Code den ich bis jetzt habe:
Hier die Ausgabe:
1
6
27
23
Eigentlich wäre ja nur ein Tag unterschied. Iwie funktioniert nichtmal die Lösung. Habt ihr andere Ideen/Verbesserungsvorschläge?
Ich möchte 2 Dati (YYYY:MM: DD:HH) mit Stundenangabe mit einer anderen solchen Angabe vergleichen und die Differenz ausrechnen.
Zuerst hatte ich keinen Plan wie das funktionieren soll, doch dann bin ich auf eine (Teil)lösung gestoßen. Ich habe so Jahre Monate Tage in Stunden umgerechnet, dann die beiden Werte subtrahiert. Alles schön und gut, jedoch habe ich als Annahme dass es keine Schaltjahre gibt und jedes Monat 30 Tage hat.
Um diese Annahme zu beseitigen fehlt mir jedoch jeglicher Ansatzpunkt.
Hier der Code den ich bis jetzt habe:
Java:
import java.io.*;
public class DateDifference {
public static void main(String args[])
{
//2010:06:03:25
int y1=2010,m1=6,d1=3,h1=25;
//2011:12:31:24
int y2=2011,m2=12,d2=31,h2=24;
float zahl1, zahl2;
//Umrechnung in Stunden
zahl1 = y1*12*30*24 + m1*30*24 + d1*24 + h1;
zahl2 = y2*12*30*24 + m2*30*24 + d2*24 + h2;
float zahl3 = zahl2 - zahl1;
//Jahre ausrechnen
float diffyear = zahl3/(12*30*24);
//Wert vor dem Komma speichern
int dy = (int)diffyear;
//Differenz der Tage ausgeben
System.out.println(dy);
//Alles vor dem Komma wegrechnen
zahl3 = diffyear-dy;
//SO wie oben
float diffmonth = zahl3 * 12 * 30 * 24;
diffmonth = diffmonth / (30*24);
int dm = (int)diffmonth;
zahl3 = diffmonth - dm;
System.out.println(dm);
float diffday = zahl3 * 30 * 24;
diffday = diffday / 24;
int dd = (int)diffday;
zahl3 = diffday - dd;
System.out.println(dd);
//Ausgabe der Stunden
System.out.println((int)(zahl3*24));
}
}
Hier die Ausgabe:
1
6
27
23
Eigentlich wäre ja nur ein Tag unterschied. Iwie funktioniert nichtmal die Lösung. Habt ihr andere Ideen/Verbesserungsvorschläge?
Zuletzt bearbeitet von einem Moderator: