ich denke, jeder kennst das bei seiner Freundin:
(Sie kommt zur Tür rein)
Hallo Schatz,
weißt du was? Wir sind heute XXXXX Tage zusammen!
(Fällt mir um den Hals, während ich nur ganz verwundert schaue...)
Was ist mit dir? hast du das etwa vergessen??
Nun habe ich mir gedacht, dafür ein Programm zu machen, indem ich das Startdatum und das Enddatum angebe und dann das Pog mir die Gesamtzahl ausgibt, doch wenn ich das Startdatum einegeben will (in einer Reihe)
gibt der mir das immer wieder in mehreren aus...
Code:
System.out.println("Von welchem Datum wollen Sie anfangen zu zählen?");
System.out.println("");
System.out.println("TT:MM:JJJJ");
System.out.println("");
starttag = Integer.parseInt(eingabe.readLine());
System.out.print(":");
startmonat = Integer.parseInt(eingabe.readLine());
System.out.print(":");
startjahr = Integer.parseInt(eingabe.readLine());
System.out.println("");
System.out.print(+starttag);
System.out.print(":");
System.out.print(+startmonat);
System.out.print(":");
System.out.println(+startjahr);
System.out.println("");
System.out.println("Bis zu welchem Datum wollen Sie zählen?");
System.out.println("");
System.out.println("TT:MM:JJJJ");
System.out.println("");
endtag = Integer.parseInt(eingabe.readLine());
System.out.print(":");
endmonat = Integer.parseInt(eingabe.readLine());
System.out.print(":");
endjahr = Integer.parseInt(eingabe.readLine());
System.out.println("");
System.out.print(+endtag);
System.out.print(":");
System.out.print(+endmonat);
System.out.print(":");
System.out.println(+endjahr);
System.out.println("");
Und noch was:
wenn ich als Datum 02 eingebe, gibt der mir trotzdem nur die 2 aus...
wie stelle ich das um?
wegen mir kann der dann auch Februar ausgeben... mir auch noch egal...
bei einstelligen Datumsangeben auch nur:
T
:M
:JJJJ
PS: es gibt aber kein Handy, bei dem die Tage hochgezählt werden...
hatte letztens genau das Prob, dass ich mit meiner Freundin 1k Tage zusammenwar und ich dann dastand wie ein Trottel *g*
Das habe ich grade versucht aber leider funzt das nich *heul*
Am besten poste ich mal den kompletten QC:
Hierbei muiss ich aber auch sagen, dass der noch lange nich komplett ist...
könnte noch ein zwei Tage dauern...
Code:
/****************************************************************
*01.07.2005 *
*Matthias Grut *
*Aufgabe des Programms: *
*Berechnung der Anzahl von Tagen durch eingabe von zwei Daten *
****************************************************************/
import java.io.*;
public class tagesanzahl
{
public static void main (String argv[]) throws IOException
{
//Startdatum
int starttag;
int startmonat;
int startjahr;
//Enddatum
int endtag;
int endmonat;
int endjahr;
//Zähler
int tage, monate, jahre;
//Ausgabe
int tag, monat, jahr;
//Tagesanzahl der einzelnen Monate
double januar[] = new double[31];
double maerz[] = new double[31];
double april[] = new double[30];
double mai[] = new double[31];
double juni[] = new double[30];
double juli[] = new double[31];
double august[] = new double[31];
double september[] = new double[30];
double oktober[] = new double[31];
double november[] = new double[30];
double dezember[] = new double[31];
BufferedReader eingabe=new BufferedReader(new InputStreamReader(System.in));
//Eingabe des Startdatums
System.out.println("Von welchem Datum wollen Sie anfangen zu zählen?");
System.out.println("");
System.out.println("TT:MM:JJJJ");
System.out.println("");
starttag = Integer.parseInt(eingabe.readLine());
System.out.print(":");
startmonat = Integer.parseInt(eingabe.readLine());
System.out.print(":");
startjahr = Integer.parseInt(eingabe.readLine());
System.out.println("");
System.out.print(+starttag);
System.out.print(":");
System.out.print(+startmonat);
System.out.print(":");
System.out.println(+startjahr);
System.out.println("");
//Eingabe des Enddatums
System.out.println("Bis zu welchem Datum wollen Sie zählen?");
System.out.println("");
System.out.println("TT:MM:JJJJ");
System.out.println("");
endtag = Integer.parseInt(eingabe.readLine());
System.out.print(":");
endmonat = Integer.parseInt(eingabe.readLine());
System.out.print(":");
endjahr = Integer.parseInt(eingabe.readLine());
System.out.println("");
System.out.print(+endtag);
System.out.print(":");
System.out.print(+endmonat);
System.out.print(":");
System.out.println(+endjahr);
System.out.println("");
//Zählerumwandlung
tage=starttag;
monate=startmonat;
jahre=startjahr;
//zur Überprüfung eingebaut
System.out.println("vorher");
System.out.print(+tage);
System.out.print(":");
System.out.print(+monate);
System.out.print(":");
System.out.println(+jahre);
while (tage<=endtag-1)
{
tage++;
}
while (monate<=endmonat-1)
{
monate++;
}
while (jahre<=endjahr-1)
{
jahre++;
}
//zur Überprüfung eingebaut
System.out.println("nachher");
System.out.print(+tage);
System.out.print(":");
System.out.print(+monate);
System.out.print(":");
System.out.println(+jahre);
if (jahre %4 == 0)
{
double februar[] = new double [28];
}
else
{
double februar[] = new double [29];
}
}
}
String startDatum="";
startDatum = eingabe.readLine();
System.out.println(startDatum);
// hier solltest du überprüfen, ob die eingabe auch ein korrektes datum ist und ob keine falschen zeichen
// eingegeben wurden
starttag = Integer.parseInt(startDatum.substring(0,2));
startmonat = Integer.parseInt(startDatum.substring(3,5));
startjahr = Integer.parseInt(startDatum.substring(6));
//das kannste dir sparen
System.out.println("");
System.out.print(+starttag);
System.out.print(":");
System.out.print(+startmonat);
System.out.print(":");
System.out.println(+startjahr);
System.out.println("");
andere frage: was möchtest du denn mit den monats-array anfangen?? kann es sein, dass du da nur konstanten
definieren wolltest in der form:
ich denke, jeder kennst das bei seiner Freundin:
(Sie kommt zur Tür rein)
Hallo Schatz,
weißt du was? Wir sind heute XXXXX Tage zusammen!
(Fällt mir um den Hals, während ich nur ganz verwundert schaue...)
Was ist mit dir? hast du das etwa vergessen??
Das Ding is ja auch weniger für mich :roll: . War zu meiner Javafrühzeit und als Übung gedacht. Außerdem steht meine Freundin auf son Kitsch ???:L :bae: . :wink:
[edit] bei deiner Langzeitbeziehung kann ich halt noch net mithalten (bin ja auch noch net sooooooooooo alt :autsch: )
1.) Lies das gesamte Datum inkl. Trennzeichen ein und parse es per DateFormat.
2.) Es gibt Kalender-Klasen, die das Rechnen für dich übernehmen.
3.) Wie wär's, wenn Du kein Enddatum eingeben musst, sondern das System-Datum verwendet wird?? Außerdem könntest Du Dir eine Art Konfig-File machen, wo Du das Startdatum und den Namen deiner aktuellen Freundin ablegst, so musst Du nix mehr eingeben (nur noch beim Wechsel der Freundin die Konfiguration ändern) und beim Start wird Dir immer das richtige Ergebnis ausgegeben. ;-)
aber wie geht denn der QC??
keine Ahnung aber kann mir den ja so nicht anschauen, oder?
vom mir aus auch über die Config-Datei aber ich hätte da auch noch andere Verwendungen für und nicht nur bis zum aktuellen Datum...
leider...
Ps aber adnke schonmal für die grosse Hilfe.
(mein lehrer meinte heute, dass sowas über Java nicht möglich sei *lach*)
aber wie geht denn der QC??
keine Ahnung aber kann mir den ja so nicht anschauen, oder?
vom mir aus auch über die Config-Datei aber ich hätte da auch noch andere Verwendungen für und nicht nur bis zum aktuellen Datum...
leider...
hab aber auch noch weiter versucht und auf ne adere weise bin ich nu dran...
der rechnet einfach pro Jahr 360Tage und dann entweder +5 oder +6 jenachdem, wieviele Schaltjahre dazwischen waren...
muss das zwar zusätzlich eingeben und das programm funzt auch noch nicht, aber was solls..
hab ja noch Zeit *g*
Wenn de denn Quellcode willst, zieh dir des Applet von meiner Homepage (differenz.class, glaub ich zumindest) und nen Decompiler. Scho haste ihn. Oder du wartest bis ich irgendwann am Wochenende Zeit hab ihn dir rauszusuchen. Alternativ könntest du mir auch sagen, was genau du wissen willst, bekomm ich bestimmt noch irgendwie zam :wink: .
@ Hobbit
Keine Ahnung was du meinst, ich warte einfach mal, weil den Compiler habe ich auch nur von einem Kumpel aus dem Betrieb.
Die Aufgabe des Programmes soll sein Bsp.: Gib mir die Tage aus zwischen dem 18.05.1984 und dem 06.07.2005.
Somit wüsste ich wieviele Tage ich alt bin,
oder Datum 1.8.04 und 6.7.05...
hauptsache ist, mir gibt das ding die korrekte Zahl raus.
Habe so zwar nix mit Proggen zu tun, aber brauche das auch in der Schule und ihr seht ja, dass ich darin quasi Untergehe....
@sky
Wohin soll ich dass denn kopieren?
in den Quellcode, den ich vorher schonmal gepostet habe, oder wohin?
hab das testweise mal in ein neues gemacht aber da bekomme ich mehr Fehlermeldungen als ich Haare auf dem Kopf hab *lach*