Hi!
Ich muss da ein Programm erstellen (und zwar ohne Hilfe der Datumsfunktionen von Java).
Dieses Programm soll irgendeinen Tag zwischen dem 1.1.2000 und dem 31.12.2099 herausfinden und dem benutzer sagen ob es ein montag, dienstag, mittwoch etc war/ist/wird.
ich habe das programm auch schon so weit dass es mir alle tage ausgibt die zwischen dem besagten datum und dem rückführdatum (1.1.2000 -> ein samstag) liegen... jetzt brauche ich nur mehr die differenz zwischen dem tag und den tagen der monate und restlichen tage in dem monat in dem sich der tag befindet.
code liegt anbei. die stelle die mir noch fehlt habe ich auskommentiert (zeilen 65 - 77) !
in den zeilen soll die variable full_diff um die nötigen tage (in zahlen) erweitert/summiert werden...
Ich muss da ein Programm erstellen (und zwar ohne Hilfe der Datumsfunktionen von Java).
Dieses Programm soll irgendeinen Tag zwischen dem 1.1.2000 und dem 31.12.2099 herausfinden und dem benutzer sagen ob es ein montag, dienstag, mittwoch etc war/ist/wird.
ich habe das programm auch schon so weit dass es mir alle tage ausgibt die zwischen dem besagten datum und dem rückführdatum (1.1.2000 -> ein samstag) liegen... jetzt brauche ich nur mehr die differenz zwischen dem tag und den tagen der monate und restlichen tage in dem monat in dem sich der tag befindet.
code liegt anbei. die stelle die mir noch fehlt habe ich auskommentiert (zeilen 65 - 77) !
in den zeilen soll die variable full_diff um die nötigen tage (in zahlen) erweitert/summiert werden...
Code:
import java.lang.Character; // importiere klasse für character-methoden
public class GetWeekDay extends IO{
public static void main(String[] args){
int year, day, month, st_year, st_day, st_month, day_diff, month_diff, year_diff, full_diff;
int anz_year, anz_s_year, anz_days, anz_s_days, ges_year;
year = 0; day = 0; month = 0;
st_year = 2000; st_day = 1; st_month = 1;
anz_year = 0; anz_days = 0; anz_s_year = 0; anz_s_days = 0;
float is_s_year;
is_s_year = 0;
char check;
check = 'j';
String tagname;
tagname = "";
while(check == 'j'){
while(year > 2099 || year < 2000){
IO.write("Geben Sie das Jahr ein: ");
year = IO.readInt();
IO.readLn();
}
while(month > 12 || month < 1){
IO.write("Geben Sie das Monat ein: ");
month = IO.readInt();
IO.readLn();
}
while(day > 31 || day < 1){
IO.write("Geben Sie den Tag ein: ");
day = IO.readInt();
IO.readLn();
}
year_diff = year - st_year;
month_diff = month - st_month;
day_diff = day - st_day;
for(ges_year = year; ges_year > st_year; ges_year--){
is_s_year = ges_year % 4;
if(is_s_year == 0){
anz_s_year++; // falls schaltjahr, erhöhe anzahl der zwischenliegenden schaltjahre um 1
}else{
anz_year++; // falls kein schaltjahr, erhöhe die anzahl der zwischenliegenden jahre um 1
}
}
full_diff = 365 * anz_year + 366 * anz_s_year; // anzahl der tage der jahre bis zum eingegeben jahr
/* Diese Stelle fehlt mir jetzt noch:
if(year % 4 == 0){
???????????
}else{
???????????
}
*/
full_diff = full_diff % 7;
switch (full_diff)
{
case(0): tagname = "Samstag"; break;
case(1): tagname = "Sonngtag"; break;
case(3): tagname = "Montag"; break;
case(4): tagname = "Dienstag"; break;
case(5): tagname = "Mittwoch"; break;
case(6): tagname = "Donnerstag"; break;
case(7): tagname = "Freitag"; break;
default: tagname = ""; break;
}
if(tagname != ""){
IO.write("Der " + day + "." + month + "." + year + " ist ein " + tagname + "!");
}else{
IO.write("Dieser Tag existiert nicht!");
}
IO.writeLn();
check = 'x'; // setze variable check auf 'x'
while(check != 'n' && check != 'j'){
IO.write("Einen weiteren Wochentag bestimmen? [j/n]: ");
check = IO.read(); // lese buchstabe auf variable ein ob noch ein wochentag gefunden werden soll j/n
IO.readLn();
check = Character.toLowerCase(check); // wenn eingabe ein großbuchstabe war dann werde zu kleinbuchstabe
}
}
}
}