Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Opgave8 {
- public static void main (String[] args) {
- Scanner sc = new Scanner(System.in);
- String[] stringDatum;
- String[] stringInterval;
- int[] datum = new int[3];
- int[] interval = new int [2];
- System.out.println("Geef een geboorte datum (dd-mm-yyyy): ");
- String invoerDatum = sc.next();
- System.out.println("Geef een interval (yyyy-yyyy): ");
- String invoerInterval = sc.next();
- stringDatum = invoerDatum.split("-");
- for (int i = 0; i < stringDatum.length; i++) {
- datum[i] = Integer.parseInt(stringDatum[i]);
- }
- int d = datum[0];
- int m = datum[1];
- int y = datum[2];
- stringInterval = invoerInterval.split("-");
- for (int i = 0; i < stringInterval.length; i++) {
- interval[i] = Integer.parseInt(stringInterval[i]);
- }
- int startJaar = interval[0];
- int eindJaar = interval[1];
- if(!correctDatum(d, m, y)){
- System.out.println("Opgegeven datum is onjuist");
- return;
- }
- if(!correctInterval(startJaar, eindJaar)){
- System.out.println("Opgegeven interval is onjuist");
- return;
- }
- System.out.println("De jaren met datum op zondag: ");
- for(int i = startJaar; i < eindJaar; i++){
- if(m==2 && d==29 && !schrikkelJaar(i))
- continue;
- if(dagteller(d, m ,i)==0)
- System.out.print(i + " ");
- }
- }
- static boolean correctDatum(int d, int m, int y){
- if( d<1 || m<1 || y<1 || d>31 || m>12 )
- return false;
- if(( m==4 || m==6 || m==9 || m==11) && d>30)
- return false;
- if( m==2 && d>29)
- return false;
- if( m==2 && !schrikkelJaar(y) && d>28)
- return false;
- return true;
- }
- static boolean correctInterval(int a, int b){
- if(a<b)
- return false;
- return true;
- }
- static boolean schrikkelJaar(int y) {
- if(y%4 != 0)
- return false;
- else if(y%100 != 0)
- return true;
- else if(y%400 != 0)
- return false;
- return true;
- }
- static int dagteller(int d, int m ,int y){
- int totaalDagen = 0;
- if(y<1700)
- totaalDagen+=4;
- if(y>1700 && y<1750)
- totaalDagen+=3;
- if(y<2012){
- for(int i = 2011; i > y; i--){
- if(schrikkelJaar(i))
- totaalDagen+=366;
- else
- totaalDagen+=365;
- }
- for (int i = 12; i > m; i--){
- if(i==2 && schrikkelJaar(y))
- totaalDagen+=29;
- else if(i==2)
- totaalDagen+=28;
- else if(i==4 || i==6 || i==9 || i==11)
- totaalDagen+=30;
- else
- totaalDagen+=31;
- }
- if(m==2 && schrikkelJaar(y))
- totaalDagen+=30-d;
- else if(m==2)
- totaalDagen+=29-d;
- else if(m==4 || m==6 || m==9 || m==11)
- totaalDagen+=31-d;
- else
- totaalDagen+=32-d;
- if(totaalDagen%7==0)
- return 0;
- else
- return 7-totaalDagen%7;
- }
- if(y>2012){
- for(int i = 2012; i<y; i++){
- if(schrikkelJaar(i))
- totaalDagen+=366;
- else
- totaalDagen+=365;
- }
- for(int i=1; i<m; i++){
- if(i==2 && schrikkelJaar(y))
- totaalDagen+=29;
- else if(i==2)
- totaalDagen+=28;
- else if(i==4 || i==6 || i==9 || i==11)
- totaalDagen+=30;
- else
- totaalDagen+=31;
- }
- totaalDagen+=d-1;
- return totaalDagen%7;
- }
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment