Klasse DatumGUI:
Klasse Datum:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DatumGUI extends JFrame
{
JTextField texttag = new JTextField();
JTextField textmonat = new JTextField();
JTextField textjahr = new JTextField();
JTextField textresult = new JTextField();
public DatumGUI()
{
super("Wochentag bestimmen mit Datumsprüfung");
setLayout(new GridLayout(4,2));
JPanel InhaltPanel = new JPanel();
JLabel labeltag = new JLabel(" Tag:");
JLabel labelmonat = new JLabel(" Monat:");
JLabel labeljahr = new JLabel(" Jahr:");
JLabel labelresult = new JLabel(" Der Tag war ein:");
add(labeltag);
add(texttag);
add(labelmonat);
add(textmonat);
add(labeljahr);
add(textjahr);
add(labelresult);
add(textresult);
textjahr.addActionListener(new Mein_ActionListener());
}
class Mein_ActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
{
Datum datObj = new Datum();
int tag = Integer.parseInt(texttag.getText());
int monat = Integer.parseInt(textmonat.getText());
int jahr = Integer.parseInt(textjahr.getText());
datObj.pruefeDatum(tag,monat,jahr);
if(datobj.pruefeDatum())
{
textresult.setText(datObj.bestimmeWochentag(tag,monat,jahr)); //Berechnung+Ausgabe von Wochentag
}
else
{
textresult.setText("Das Jahr "+jahr+" vom 29.Februar ist kein Schaltjahr");
}
}
}
}
public static void main(String [] args)
{
DatumGUI fenster = new DatumGUI();
fenster.setSize(400,300);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Klasse Datum:
Code:
public class Datum
{
int iJahr, iMonat, iTag;
String strWochentag= new String();
boolean schalt;
boolean pruefeDatum(int tag, int monat, int jahr)
{
boolean schaltjahr;
if(jahr < 1583)
{
DatumGUI.textresult.setText("ungültiges Datum !");
}
else
{
switch (monat)
{
case 1: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 2:
if(tag > 29)
{
DatumGUI.textresult.setText("ungültiges Datum !");
break;
}
else
{
if(jahr%4==0 || jahr%400==0)
{
schaltjahr = true; //Februar hat 29 Tage , da Schaltjahr
break;
}
else
{
if (tag == 29)
{
schaltjahr = false;
}
break;
}
}
case 3: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 4: if(tag > 30) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 5: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 6: if(tag > 30) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 7: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 8: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 9: if(tag > 30) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 10: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 11: if(tag > 30) DatumGUI.textresult.setText("ungültiges Datum !"); break;
case 12: if(tag > 31) DatumGUI.textresult.setText("ungültiges Datum !"); break;
}
}
return(schaltjahr);
}
String betimmeTag(int Tag, int Monat, int Jahr)
{
this.iTag=Tag;
this.iMonat=Monat;
this.iJahr=Jahr;
int jahr1, jahr2;
int h1=0,h2=0,h3=0,b=0,f=0;
if(Monat<3)
{
Monat=Monat+10;
Jahr=Jahr-1;
}
else{
Monat=Monat-2;
}
jahr1=Jahr/100;
jahr2=Jahr%100;
h1=((Monat*13-1)/5);
h2=(jahr2/4);
h3=(jahr1/4);
b=h1+h2+h3;
f=((b+jahr2+Tag)-jahr1*2)%7;
if(f<0){
f=f+7;
}
switch (f){
case 0: strWochentag = "Sonntag";break;
case 1: strWochentag = "Montag";break;
case 2: strWochentag = "Dienstag";break;
case 3: strWochentag = "Mittwoch";break;
case 4: strWochentag = "Donnerstag";break;
case 5: strWochentag = "Freitag";break;
case 6: strWochentag = "Samstag";break;
}
return(strWochentag);
}
}