/* * Stefan Ralisch * Matrikelnummer: 0407039 * Programm 3126 - 7 Segment LED Anzeige */ import eprog.*; public class Anzeige { /* * Die Funktion getTag bestimmt anhand des Datums den entsprechenden Wochentag. * Dazu wird eine Formel verwendet, die den Wochentag des 1.1 des entsprechenden * Jahres liefert (0 für Sonntag - 6 für Samstag). Dieser wird dann als return-Wert * zurückgeliefert. */ public static int getTag(int Tag, int Monat, int Jahr) { int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if (Jahr < 100) { // Da 2-stellige Jahresangaben im 20. Jahrhundert angesiedelt Jahr=Jahr+1900; // sein solln, wird im entsprechenden Fall 1900 zur Jahreszahl addiert. } double temp = 0; temp = ( (Jahr + Math.floor((Jahr-1)/4) - Math.floor((Jahr-1)/100) + Math.floor((Jahr-1)/400)) ); int t11 = (int) temp; t11=t11 % 7; // Diese Formel liefert den Wochentag des 1.1 des Jahres int anzahl = 0; for (int i=0; i 2) anzahl++; anzahl=anzahl+Tag-1; anzahl=anzahl % 7; return (t11+anzahl) % 7; } /* * Die Funktion checkdate prüft die Eingabedaten auf Korrektheit (z.b. kein 30. Februar). */ public static boolean checkdate(int Tag, int Monat, int Jahr) { if (Monat<1 || Monat>12) return false; if ((Monat==4) || (Monat==6) || (Monat==9) || (Monat==11)) if (Tag>30) return false; if (Tag>31) return false; if ((Tag==0) || (Monat==0)) return false; if (Monat == 2) { if ((Jahr % 4) == 0) { if (Tag>29) // Falls ein Schaltjahr return false; } else if (Tag>28) // Wenn kein Schaltjahr return false; } return true; } /* * Checktime überprüft die Korrektheit der eingegebenen Uhrzeit. */ public static boolean checktime(int Stunde10, int Stunde1, int Minute10, int Minute1) { if (((10*Stunde10) + Stunde1) > 23) { return false; } if (((10*Minute10) + Minute1) > 59) { return false; } return true; } public static void main(String[] args) { int Tag = 0; int Monat = 0; int Jahr = 0; int Stunde10 = 0; int Stunde1 = 0; int Minute10 = 0; int Minute1 = 0; boolean fehler = false; char trennzeichen = 0; // Einlesen String eingabe = EprogIO.readWord (); // Trennzeichen suchen for (int i=0; i57) ) { trennzeichen=eingabe.charAt(i); break; } } // Trennzeichen überprüfen if (Character.isLetterOrDigit(trennzeichen)) fehler=true; String sTag=""; String sMonat=""; String sJahr=""; String sStunde10=""; String sStunde1=""; String sMinute10=""; String sMinute1=""; // Tag, Monat, Jahr, Stunde und Minute werden in einzelne Strings zerlegt if (trennzeichen == 0) { // ohne Trennzeichen if (eingabe.length() != 10) { fehler = true; } else { try { sTag = eingabe.substring(0,2); sMonat = eingabe.substring(2,4); sJahr = eingabe.substring(4,6); sStunde10 = eingabe.substring(6,7); sStunde1 = eingabe.substring(7,8); sMinute10 = eingabe.substring(8,9); sMinute1 = eingabe.substring(9,10); } catch (Exception E) {fehler=true;} } } else { // mit Trennzeichen try { int i = eingabe.indexOf(trennzeichen); sTag = eingabe.substring(0,i); int j = eingabe.indexOf(trennzeichen, i+1); sMonat = eingabe.substring(i+1, j); int k = eingabe.indexOf(trennzeichen, j+1); sJahr = eingabe.substring(j+1, k); int l = eingabe.indexOf(trennzeichen, k+1); sStunde10 = eingabe.substring(k+1, k+2); sStunde1 = eingabe.substring(k+2, l); sMinute10 = eingabe.substring(l+1, l+2); sMinute1 = eingabe.substring(l+2, eingabe.length()); } catch (Exception E) { fehler=true; } } try { // in Zahl umwandeln Tag = Integer.parseInt(sTag); Monat = Integer.parseInt(sMonat); Jahr = Integer.parseInt(sJahr); Stunde10 = Integer.parseInt(sStunde10); Stunde1 = Integer.parseInt(sStunde1); Minute10 = Integer.parseInt(sMinute10); Minute1 = Integer.parseInt(sMinute1); } catch (Exception E) { fehler = true; } if (!fehler) fehler = !checkdate(Tag,Monat,Jahr); //Gültigkeit des Datums if (!fehler) fehler = !checktime(Stunde10,Stunde1,Minute10,Minute1); // Gültigkeit der Zeit if (!fehler) { int day = getTag(Tag, Monat, Jahr); // Wochentag switch (day) { case 0: EprogIO.print("13467 123456 "); break; // Sonntag case 1: EprogIO.print("12356 123456 "); break; // Montag case 2: EprogIO.print("123456 56 "); break; // Dienstag case 3: EprogIO.print("12356 56 "); break; // Mittwoch case 4: EprogIO.print("123456 123456 "); break; // Donnerstag case 5: EprogIO.print("1567 123567 "); break; // Freitag case 6: EprogIO.print("13467 123567 "); break; // Samstag default: break; } switch (Stunde10) { case 0: EprogIO.print("123456 "); break; // 0 case 1: EprogIO.print("23 "); break; // 1 case 2: EprogIO.print("12457 "); break; // 2 case 3: EprogIO.print("12347 "); break; // 3 case 4: EprogIO.print("2367 "); break; // 4 case 5: EprogIO.print("13467 "); break; // 5 case 6: EprogIO.print("134567 "); break; // 6 case 7: EprogIO.print("1236 "); break; // 7 case 8: EprogIO.print("1234567 "); break; // 8 case 9: EprogIO.print("123467 "); break; // 9 default: break; } switch (Stunde1) { case 0: EprogIO.print("123456 "); break; case 1: EprogIO.print("23 "); break; case 2: EprogIO.print("12457 "); break; case 3: EprogIO.print("12347 "); break; case 4: EprogIO.print("2367 "); break; case 5: EprogIO.print("13467 "); break; case 6: EprogIO.print("134567 "); break; case 7: EprogIO.print("1236 "); break; case 8: EprogIO.print("1234567 "); break; case 9: EprogIO.print("123467 "); break; default: break; } switch (Minute10) { case 0: EprogIO.print("123456 "); break; case 1: EprogIO.print("23 "); break; case 2: EprogIO.print("12457 "); break; case 3: EprogIO.print("12347 "); break; case 4: EprogIO.print("2367 "); break; case 5: EprogIO.print("13467 "); break; case 6: EprogIO.print("134567 "); break; case 7: EprogIO.print("1236 "); break; case 8: EprogIO.print("1234567 "); break; case 9: EprogIO.print("123467 "); break; default: break; } switch (Minute1) { case 0: EprogIO.println("123456"); break; case 1: EprogIO.println("23"); break; case 2: EprogIO.println("12457"); break; case 3: EprogIO.println("12347"); break; case 4: EprogIO.println("2367"); break; case 5: EprogIO.println("13467"); break; case 6: EprogIO.println("134567"); break; case 7: EprogIO.println("1236"); break; case 8: EprogIO.println("1234567"); break; case 9: EprogIO.println("123467"); break; default: break; } } else EprogIO.println("FALSCHE EINGABE"); // Wenn Eingabefehler vorhanden } }
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif