Hallo,
Ik ben 1 week geleden begonnen met java, maar ik loop nu al op problemen. Ik heb een programma gemaakt om de paasdatum te bereken voor de jaar 1900 tot 2099. Probleem die ik nu heb is dat de uitkomst niet de juiste data is. Voorbeeld 2009 hoort passen te vallen op dag 12 van maand 4 en 2010 op dag 4 van maand 4.
Uikomst dat ik nu krijg is dat pasen in 2009 valt op 17 van maand 4 en 2010 op 31 van maand 3.
Opdracht1
Paasdagpaneel
PS: bekijk de bijlage voor de jar bestand.
Ik ben 1 week geleden begonnen met java, maar ik loop nu al op problemen. Ik heb een programma gemaakt om de paasdatum te bereken voor de jaar 1900 tot 2099. Probleem die ik nu heb is dat de uitkomst niet de juiste data is. Voorbeeld 2009 hoort passen te vallen op dag 12 van maand 4 en 2010 op dag 4 van maand 4.
Uikomst dat ik nu krijg is dat pasen in 2009 valt op 17 van maand 4 en 2010 op 31 van maand 3.
Opdracht1
Code:
import javax.swing.*;
public class Opdracht1 extends JFrame
{
public Opdracht1()
{
setSize( 410, 450 );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setTitle( "Kaars" );
setLocation( 100, 100 );
JPanel hoofdpaneel = new Paasdagpaneel();
add( hoofdpaneel );
setVisible( true );
}
public static void main( String[] args )
{
new Opdracht1();
}
}
Paasdagpaneel
Code:
import javax.swing.*;
import java.awt.event.*;
public class Paasdagpaneel extends JPanel implements ActionListener
{
private int jaartal, A, B, C, D, E, F, dag, maand;
private JButton knop;
private JTextField invoerVeld;
private JTextArea area;
Paasdagpaneel()
{
invoerVeld = new JTextField(10);
knop = new JButton ("Bepaal paasdatum");
knop.addActionListener(this);
area = new JTextArea(14,30);
area.setEditable(false);
add(invoerVeld);
add(knop);
add(area);
}
public void actionPerformed(ActionEvent e)
{
//getal = 6;
//int yPos = 0;
String resultaatVeld = invoerVeld.getText();
jaartal = Integer.parseInt(resultaatVeld);
A = jaartal%19;
B = jaartal%4;
C = jaartal%7;
D = (19*A+24)%30;
E = (5+2*B*C+6*D)%7;
F = D+E-9;
if(jaartal >= 1900)
{
if(jaartal <= 2099)
{
if( F > 0)
{
maand = 4;
if((F)== 26)
{
dag = 19;
area.setText( " In " + jaartal + " valt Passen op de dag " + dag + " van maand " + maand );
}
else
{
if((F) == 25)
{
if((D )==28)
{
dag = 18;
area.setText( " In " + jaartal + " valt Passen op de dag " + dag + " van maand " + maand );
}
}
else
{
dag = F;
area.setText( " In " + jaartal + " valt Passen op de dag " + dag + " van maand " + maand );
}
}
}
else
{
dag = F+31;
maand = 3;
area.setText( " In " + jaartal + " valt Passen op de dag " + dag + " van maand " + maand );
}
}
else
{
JOptionPane.showMessageDialog(
null,
"Het jaartal moet 2099 of eerder zijn!",
"onjuist jaartel",
JOptionPane.ERROR_MESSAGE );
}
}
else
{
JOptionPane.showMessageDialog(
null,
"Het jaartal moet 1900 of later zijn!",
"onjuist jaartel",
JOptionPane.ERROR_MESSAGE );
}
}
}
PS: bekijk de bijlage voor de jar bestand.