Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Dec 13, 2020 9:08 PM
Views: 5
Tags: if
  1. import java.util.Scanner;
  2. public class Main {
  3.     // TODO: 16.11.2020 Schaltjahr bsp in Methoden unterteilen und Scanner einfügen
  4.     public static void main(String[] args) {
  5.         var scanner = new Scanner(System.in);
  6.  
  7.         int numbersOfMonth = numbersOfMonth(scanner);
  8.  
  9.         System.out.println(numbersOfMonth);
  10.     }
  11.     //create Method int inputYear
  12.     public static int inputYear(java.util.Scanner scan){
  13.         // and ask the user to input a year
  14.         System.out.println("Please input a year between 1900 and 2100");
  15.         //The value will be stored inside of inputYear
  16.         int year = scan.nextInt();
  17.         //condition: only between 1900 and 2100
  18.         if (year < 1900 && year > 2100){
  19.             System.out.println("Only values between 1900 and 2100 are accepted.");
  20.  
  21.         }
  22.         return year;
  23.     }
  24.     public static int inputMonth(java.util.Scanner scan){
  25.         // and ask the user to input a year
  26.         System.out.println("Please input a number between 1 and 12");
  27.         //The value will be stored inside of inputYear
  28.         int month = scan.nextInt();
  29.  
  30.         return month;
  31.     }
  32.  
  33.     public static int numbersOfMonth(java.util.Scanner scan) {
  34.  
  35.  
  36.  
  37.         //Aus der Angabe werden year und month übernommen
  38.         int year = inputYear(scan);
  39.         int monatstage=0;
  40.  
  41.  
  42.         int month = inputMonth(scan);
  43.  
  44.  
  45.                 /*
  46.                   Ein Jahr ist ein Schaltjahr, wenn
  47.                     1) die Jahreszahl durch 4 teilbar ist.
  48.                     2) die Jahreszahl durch 4, aber nicht durch 100 teilbar ist.
  49.                     3) die Jahreszahl durch 4, durch 100 und durch 400 teilbar ist.
  50.                  */
  51.         switch (month) {
  52.             case 1:
  53.             case 3:
  54.             case 5:
  55.             case 7:
  56.             case 8:
  57.             case 10:
  58.             case 12:
  59.                 monatstage = 31;
  60.                 break;
  61.             //Fälle, 'cases' werden nacheinander eingegeben
  62.             //Sonderfall: Februar:
  63.             case 2:
  64.                 monatstage = 28;
  65.                 if ((year % 400 == 0) || ((year % 100 != 0) && (year % 4 == 0))) {
  66.                     monatstage = 29;
  67.                 }
  68.                 break;
  69.             //Fälle für: April, Juni, September, November:
  70.             case 4:
  71.             case 6:
  72.             case 9:
  73.             case 11:
  74.                 monatstage  = 30;
  75.                 break;
  76.  
  77.         }
  78.  
  79.  
  80.         if (month >= 1 && month <= 12 && year >= 1900 && year <= 2100 ){
  81.             System.out.println("Valid Input..");
  82.  
  83.         } else{
  84.             System.out.println("Only values between 1 and 12 (for the month) and only values between 1900 and 2100 are accepted for the year. ");
  85.             monatstage = -1;
  86.         }
  87.  
  88.         return monatstage;
  89.     }
  90. }
  91.