Datumsanzeige mit BlueJ

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

  • Datumsanzeige mit BlueJ

    Hallo ! Ich bin der Neue.

    Ich hab ein kleines Problem , und zwar haben wir in Informatik die Aufgabe bekommen eine Datumsanzeige mit BlueJ zu basteln...
    Leider war ich nich so oft da im Unterricht und nu hab ich kein Plan !

    Hatte gestern schon unter Hilfe was gefunden doch da wird nur die Systemzeit ausgelesen, aber das Taktsignal soll per knopfdruck erfolgen...

    Hat jemand ne Idee wie ne Lösung aussehen könnte ?!


    Danke im Vorraus
    Jonas
  • Quellcode

    1. /**
    2. * Die Klassen Datum implementiert die Anzeige eines Kalenderdatums.
    3. * Die Anzeige zeigt Tag und Monat an Der Anzeigebereich reicht von
    4. * 01.01. bis 31.12.
    5. *
    6. * Eine Datumanzeige sollte täglich "Taktsignale" (über die Operation
    7. * "taktsignalGeben") erhalten, damit sie die Anzeige aktualisieren
    8. * kann. Dies geschieht, wie man es bei einem Kalender erwartet: Die
    9. * Monate erhöhen sich, wenn das Taglimit in dem betreffenden Monat
    10. * erreicht ist.
    11. *
    12. */
    13. public class Datum
    14. {
    15. private Nummernanzeige tage;
    16. private Nummernanzeige monate;
    17. private String datumanzeige; // simuliert die tatsächliche Anzeige
    18. /**
    19. * Konstruktor für ein Exemplar von Datumanzeige.
    20. * Mit diesem Konstruktor wird die Anzeige auf 01.01. initialisiert.
    21. */
    22. public Datum()
    23. {
    24. tage = new Nummernanzeige(32);
    25. monate = new Nummernanzeige(13);
    26. anzeigeAktualisieren();
    27. }
    28. /**
    29. * Konstruktor für ein Exemplar von Datumanzeige.
    30. * Mit diesem Konstruktor wird die Anzeige auf den Wert
    31. * initialisiert, der durch 'tag' und 'monat'
    32. * definiert ist. Unsinnige Eingaben werden bei 'setzeDatum' abgefangen
    33. */
    34. public Datum(int tag, int monat)
    35. {
    36. tage = new Nummernanzeige(32);
    37. monate = new Nummernanzeige(13);
    38. setzeDatum(tag, monat);
    39. }
    40. /**
    41. * Diese Operation sollte einmal pro Tag aufgerufen werden -
    42. * sie sorgt dafür, dass diese Datumanzeige um einen Tag
    43. * weiter gestellt wird.
    44. */
    45. public void taktsignalGeben()
    46. {
    47. int m = monate.gibWert();
    48. int t = tage.gibWert();
    49. if((m == 2) && (t >= 28))
    50. tage.setzeWert(31);
    51. if(((m == 4) || (m == 6) || (m == 9) || (m == 11)) && (t == 30))
    52. tage.setzeWert(31);
    53. tage.erhoehen();
    54. if(tage.gibWert() == 0) { // Limit wurde erreicht!
    55. monate.erhoehen();
    56. }
    57. anzeigeAktualisieren();
    58. }
    59. /**
    60. * Setze das Datum dieser Anzeige auf die gegebene 'tag' und
    61. * 'monat'. Wird in einem Monat mit 28 bzw. 30 Tagen für 'tag'
    62. * eine höherer Wert eingegeben, wird das Maximum in diesem
    63. * Monat als Wert für 'tag' genommen
    64. */
    65. public void setzeDatum(int tag, int monat)
    66. {
    67. if((monat == 2) && (tag > 28))
    68. tage.setzeWert(28);
    69. else
    70. {
    71. if(((monat == 4) || (monat == 6) || (monat == 9) || (monat == 11)) && (tag > 30))
    72. tage.setzeWert(30);
    73. else
    74. {
    75. tage.setzeWert(tag);
    76. }
    77. }
    78. monate.setzeWert(monat);
    79. anzeigeAktualisieren();
    80. }
    81. /**
    82. * Liefere das aktuelle Datum dieser Datumsanzeige im Format TT.MM.
    83. */
    84. public String gibDatumt()
    85. {
    86. return datumanzeige;
    87. }
    88. /**
    89. * diese Methode passt die Werte von Tag und Monat an:
    90. * der Wert 0 ist nicht zulässig und wird auf 1 korrigiert
    91. */
    92. private void korrektur()
    93. {
    94. if(monate.gibWert() == 0)
    95. monate.setzeWert(1);
    96. if(tage.gibWert() == 0)
    97. tage.setzeWert(1);
    98. }
    99. /**
    100. * Aktualisiere die interne Zeichenkette, die die Datumsanzeige hält.
    101. */
    102. private void anzeigeAktualisieren()
    103. {
    104. korrektur(); // zunächst wird die Korrektur durchgeführt
    105. datumanzeige = tage.gibAnzeigewert() + "."
    106. + monate.gibAnzeigewert() + "." ;
    107. }
    108. }
    Alles anzeigen