Java Kalender (Konsolenanwendung)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Java Kalender (Konsolenanwendung)

    Quellcode

    1. /**
    2. *
    3. * @author Torben Brodt
    4. * @version 1.0
    5. *
    6. * <p />Kalender
    7. * <p />Funktioniert mit Java < 1.5
    8. */
    9. public class A2_Kalender {
    10. /**
    11. * @param args
    12. */
    13. public static void main(String[] args) {
    14. java.util.Scanner input = new java.util.Scanner(System.in);
    15. System.out.print("Bitte geben Sie den Monat des Datums ein: ");
    16. int m = input.nextInt();
    17. System.out.print("Bitte geben Sie den Jahr des Datums ein: ");
    18. int y = input.nextInt();
    19. char w[] = {'M','D','M','D','F','S','S'};
    20. for(char day : w)
    21. System.out.print(" "+day);
    22. System.out.println();
    23. int tag = alteWochentagFunktion(1,m,y);
    24. int ende = tageImMonat(m,y);
    25. String ausgabe="";
    26. int tage=0, i=1;
    27. System.out.print(" ");
    28. while(tage < ende)
    29. {
    30. if(i > tag)
    31. {
    32. tage++;
    33. ausgabe = (i % 7 == 0) ? tage+"
    34. " : tage+" ";
    35. if(y == 1582 && m == 10 && tage > 4 && tage < 15)
    36. ausgabe = "false";
    37. } else
    38. ausgabe = " ";
    39. if(ausgabe != "false")
    40. {
    41. i++;
    42. System.out.print(ausgabe);
    43. }
    44. }
    45. }
    46. static int alteWochentagFunktion(int d, int m, int y) {
    47. int tage=0, id=1, im=1, iy=1;
    48. // Anzahl der Tage im Monat
    49. int monate[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    50. monate[2] = isSchaltjahr(y) ? 29 : monate[2];
    51. //Jahr angleichen
    52. while(iy<y)
    53. { tage += isSchaltjahr(iy) ? 366 : 365;
    54. iy++;
    55. }
    56. //Monat angleichen
    57. while(im<m)
    58. { tage += monate[im];
    59. im++;
    60. }
    61. //Tag angleichen
    62. while(id<d)
    63. { tage += 1;
    64. id++;
    65. }
    66. // gestrichene tage abziehen
    67. tage += (y == 1582 && (m == 10 && d > 15) || (m > 10)) || y > 1582 ? 11 : 0;
    68. //Samstag = 1. jan 1
    69. int wochentage[] = {5,6,0,1,2,3,4};
    70. return wochentage[tage % 7];
    71. }
    72. static int tageImMonat(int m, int y) {
    73. int monate[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    74. monate[2] = isSchaltjahr(y) ? 29 : monate[2];
    75. return monate[m];
    76. }
    77. static boolean isSchaltjahr(int y)
    78. {
    79. if((y % 4) == 0 && (y < 1600))
    80. return true;
    81. else
    82. return (y % 4 == 0) && (!(y % 100 == 0) || (y % 400 == 0)) ? true : false;
    83. }
    84. }
    Alles anzeigen