Funktioniert auf Rechner mit amerikanichen Zeiteinstellung nicht einwandfrei.
import java.util.*;
import java.applet.Applet;
import java.awt.*;
public class aufgabe44 extends Applet
{
Label jlabel = new Label("Jahr :");
TextField jtext = new TextField("", 5);
Label mlabel = new Label("Monat :");
Choice mchoice = new Choice();
Button neu;
String monate[] = {"Januar", "Februar", "März", "April",
"Mai", "Juni", "Juli", "August", "September",
"Oktober", "November", "Dezember"};
int amonat;
int ajahr=2001;
public void init()
{
setSize(600,500);
setVisible(true);
add(jlabel);
jtext.setText(String.valueOf(ajahr));
add(jtext);
add(mlabel);
for (int i = 0; i < 12; i++)
mchoice.addItem(monate[i]);
mchoice.select(amonat);
add(mchoice);
neu = new Button("NEU Zeichnen");
add(neu);
}
public boolean action(Event evt, Object arg)
{
int ejahr;
if (evt.target instanceof Button)
{
String Knopf=arg.toString();
if (Knopf=="NEU Zeichnen")
{
amonat = mchoice.getSelectedIndex();
ejahr = Integer.parseInt(jtext.getText());
ajahr = ejahr;
repaint();
return true;
}
}
return false;
}
public void paint(Graphics g)
{
int tage=0;
int x=40;
int y=130;
Calendar kal = new GregorianCalendar(ajahr, amonat, 1);
switch(amonat)
{
case 0:
g.drawString("Januar "+ajahr,15,50);tage=31;break;
case 1:
g.drawString("Februar "+ajahr,15,50);
if (((ajahr%4 == 0 && ajahr%100 != 0) || ajahr%400 == 0) && amonat == 1) tage = 29;
else tage=28;break;
case 2:
g.drawString("März "+ajahr,15,50);tage=31;break;
case 3:
g.drawString("April "+ajahr,15,50);tage=30;break;
case 4:
g.drawString("Mai "+ajahr,15,50);tage=31;break;
case 5:
g.drawString("Juni "+ajahr,15,50);tage=30;break;
case 6:
g.drawString("Juli "+ajahr,15,50);tage=31;break;
case 7:
g.drawString("August "+ajahr,15,50);tage=31;break;
case 8:
g.drawString("September "+ajahr,15,50);tage=30;break;
case 9:
g.drawString("Oktober "+ajahr,15,50);tage=31;break;
case 10:
g.drawString("November "+ajahr,15,50);tage=30;break;
case 11:
g.drawString("Dezember "+ajahr,15,50);tage=31;
}
g.drawString("Montag",20,80);
g.drawString("Dienstag",100,80);
g.drawString("Mittwoch",180,80);
g.drawString("Donnerstag",250,80);
g.drawString("Freitag",340,80);
g.drawString("Samstag",420,80);
g.drawString("Sonntag",500,80);
kal.set(ajahr, amonat, 1);
int wotag = kal.get (Calendar.DAY_OF_WEEK);
if (wotag==1)
x=520;
else{
for (int i=wotag-1; i > 1; i--)
x+=80;
}
kal.set(Calendar.MONTH, amonat);
for (int i= 1; i <= tage; i++) {
kal.set(Calendar.DATE, i);
if (kal.get(Calendar.DAY_OF_WEEK) == kal.getFirstDayOfWeek()) {
y+=50;x=40; }
g.setColor(Color.magenta);
g.drawString(i+"" ,x,y);
g.setColor(Color.black);
g.drawLine(x-30,y+20,x+35,y+20);//untere Line
g.drawLine(x-30,y+20,x-30,y-30);//linke Line
g.drawLine(x+35,y+20,x+35,y-30);//rechte line
g.drawLine(x-30,y-30,x+35,y-30);//obere Line
x+=80;
}
}
}