Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hab mal eine frage wie ich eines meiner ersten programmer verbessern könnte!
und zwar hab ich ein programm geschrieben mit hilfe dessen man den wochentag bestimmter
daten in der vergangenheit ausrechnen kann !
1. kann mir einer sagen wie das auch klappt wenn man daten über dem jahr 200 eingeben kann!?
2. und wie ausgeschlossen wird das der 29. februar in den bestimmten jahren nicht aufgeführt wird !?
bitte um hilfe danke....
Code:
import java.io.*;
public class anne_daten
{
public static void main(String args[])
throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int z;
int m;
int t;
int jh;
int j;
System.out.print(" Gib den Tag ein ");
t=Integer.parseInt(br.readLine());
System.out.print(" Gib den Monat an ");
m=Integer.parseInt(br.readLine());
System.out.print(" Gib das Jahr ein ");
j=Integer.parseInt(br.readLine());
System.out.print(" Gib das Jahrhundert ein ");
jh=Integer.parseInt(br.readLine());
z=(t+(((m+1)*26)/10)+((5*j)/4)+((jh)/4)-(2*jh)-1)%7;
switch (z)
{
case 0:
System.out.print("SO"); break;
case 1:
System.out.print("MO"); break;
case 2:
System.out.print("DI"); break;
case 3:
System.out.print("MI"); break;
case 4:
System.out.print("DO"); break;
case 5:
System.out.print("FR"); break;
case 6:
System.out.print("SA"); break;
default;
System.out.print("Fehler"); break;
} // Ende switch
{
public static void main(String args[])
throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int z;
int m;
int t;
int jh;
int j;
System.out.print(" Gib den Tag ein ");
t=Integer.parseInt(br.readLine());
System.out.print(" Gib den Monat an ");
m=Integer.parseInt(br.readLine());
System.out.print(" Gib das Jahr ein ");
j=Integer.parseInt(br.readLine());
System.out.print(" Gib das Jahrhundert ein ");
jh=Integer.parseInt(br.readLine());
public class Date
{
public static void main(String args[])
{
GregorianCalendar cal = new GregorianCalendar(2005,2,1);
int i=(cal.get(GregorianCalendar.DAY_OF_WEEK));
switch (i)
{
case GregorianCalendar.MONDAY:
System.out.println("MO");
break;
case GregorianCalendar.TUESDAY:
System.out.println("DI");
break;
case GregorianCalendar.WEDNESDAY:
System.out.println("MI");
break;
case GregorianCalendar.THURSDAY:
System.out.println("DO");
break;
case GregorianCalendar.FRIDAY:
System.out.println("FR");
break;
case GregorianCalendar.SATURDAY:
System.out.println("SA");
break;
case GregorianCalendar.SUNDAY:
System.out.println("SO");
break;
default:
break;
}
}
}
sicher "geht's"... aber wenn Du mit "Programm verbessern" auch einen guten Programmierstil
meinst, dann soltest Du Dir den GregorianCalendar schon mal ansehen... :wink:
Ist schon jemandem aufgefallen, daß der Kalender ab dem 01.03.2005 falsch rechnet?
Wildcards Code funktioniert bis zum 28.02.2005 einwandfrei und dann ist es vorbei.
Heute (new GregorianCalendar(2005,3,3)) ist Sonntag??? Ich habe gerade mit einem Kunden Telefoniert und die Kinder sind in der Schule. Was ist schief gelaufen? Könnte das bitte jemand nachprüfen. Bei mir läuft das ganze auf "j2sdk1.4.2_04".
Der Sinn ist, dass der 1. Monat (praktisch Januar) mit einer 0 gekennzeichnet wird. Demnach ist 1 Februar, 2 März, 3 April usw. Kannst dir vorstellen wie im Array. Fängt ja auch mit 0 und nicht 1 an.
Als ich den kleinen Beispielcode geschrieben hab bin ich auch über das Problem gestolpert, und war genauso verduzt.
Das überhaupt etwas bei 0 anfängt ist bei einem Kalander Schwachsinn, das es nur die Monate sind ist komplett
fürn A...
bronks hat gesagt.:
Ich glaube, da hat ein Praktikant bei Sun etwas vermasselt; oder?