Guest User

Untitled

a guest
Apr 20th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Opgave8 {
  4. public static void main (String[] args) {
  5. Scanner sc = new Scanner(System.in);
  6. String[] stringDatum;
  7. String[] stringInterval;
  8. int[] datum = new int[3];
  9. int[] interval = new int [2];
  10.  
  11. System.out.println("Geef een geboorte datum (dd-mm-yyyy): ");
  12. String invoerDatum = sc.next();
  13. System.out.println("Geef een interval (yyyy-yyyy): ");
  14. String invoerInterval = sc.next();
  15.  
  16. stringDatum = invoerDatum.split("-");
  17. for (int i = 0; i < stringDatum.length; i++) {
  18. datum[i] = Integer.parseInt(stringDatum[i]);
  19. }
  20. int d = datum[0];
  21. int m = datum[1];
  22. int y = datum[2];
  23.  
  24. stringInterval = invoerInterval.split("-");
  25. for (int i = 0; i < stringInterval.length; i++) {
  26. interval[i] = Integer.parseInt(stringInterval[i]);
  27. }
  28. int startJaar = interval[0];
  29. int eindJaar = interval[1];
  30.  
  31. if(!correctDatum(d, m, y)){
  32. System.out.println("Opgegeven datum is onjuist");
  33. return;
  34. }
  35. if(!correctInterval(startJaar, eindJaar)){
  36. System.out.println("Opgegeven interval is onjuist");
  37. return;
  38. }
  39.  
  40. System.out.println("De jaren met datum op zondag: ");
  41. for(int i = startJaar; i < eindJaar; i++){
  42. if(m==2 && d==29 && !schrikkelJaar(i))
  43. continue;
  44. if(dagteller(d, m ,i)==0)
  45. System.out.print(i + " ");
  46. }
  47. }
  48.  
  49. static boolean correctDatum(int d, int m, int y){
  50. if( d<1 || m<1 || y<1 || d>31 || m>12 )
  51. return false;
  52. if(( m==4 || m==6 || m==9 || m==11) && d>30)
  53. return false;
  54. if( m==2 && d>29)
  55. return false;
  56. if( m==2 && !schrikkelJaar(y) && d>28)
  57. return false;
  58. return true;
  59. }
  60.  
  61. static boolean correctInterval(int a, int b){
  62. if(a<b)
  63. return false;
  64. return true;
  65. }
  66.  
  67. static boolean schrikkelJaar(int y) {
  68. if(y%4 != 0)
  69. return false;
  70. else if(y%100 != 0)
  71. return true;
  72. else if(y%400 != 0)
  73. return false;
  74. return true;
  75. }
  76.  
  77. static int dagteller(int d, int m ,int y){
  78. int totaalDagen = 0;
  79. if(y<1700)
  80. totaalDagen+=4;
  81. if(y>1700 && y<1750)
  82. totaalDagen+=3;
  83.  
  84. if(y<2012){
  85. for(int i = 2011; i > y; i--){
  86. if(schrikkelJaar(i))
  87. totaalDagen+=366;
  88. else
  89. totaalDagen+=365;
  90. }
  91. for (int i = 12; i > m; i--){
  92. if(i==2 && schrikkelJaar(y))
  93. totaalDagen+=29;
  94. else if(i==2)
  95. totaalDagen+=28;
  96. else if(i==4 || i==6 || i==9 || i==11)
  97. totaalDagen+=30;
  98. else
  99. totaalDagen+=31;
  100. }
  101.  
  102. if(m==2 && schrikkelJaar(y))
  103. totaalDagen+=30-d;
  104. else if(m==2)
  105. totaalDagen+=29-d;
  106. else if(m==4 || m==6 || m==9 || m==11)
  107. totaalDagen+=31-d;
  108. else
  109. totaalDagen+=32-d;
  110.  
  111. if(totaalDagen%7==0)
  112. return 0;
  113. else
  114. return 7-totaalDagen%7;
  115. }
  116.  
  117. if(y>2012){
  118. for(int i = 2012; i<y; i++){
  119. if(schrikkelJaar(i))
  120. totaalDagen+=366;
  121. else
  122. totaalDagen+=365;
  123. }
  124. for(int i=1; i<m; i++){
  125. if(i==2 && schrikkelJaar(y))
  126. totaalDagen+=29;
  127. else if(i==2)
  128. totaalDagen+=28;
  129. else if(i==4 || i==6 || i==9 || i==11)
  130. totaalDagen+=30;
  131. else
  132. totaalDagen+=31;
  133. }
  134. totaalDagen+=d-1;
  135. return totaalDagen%7;
  136. }
  137.  
  138. return 0;
  139. }
  140.  
  141.  
  142.  
  143. }
Add Comment
Please, Sign In to add comment