// Muhamed Kesetovic BspNr.1090 // verändert von Thomas Semper // BspNr.3126 | 7-Segment Led Anzeige import eprog.*; public class Anzeige { static String ausgabe = ""; //String für Ausgabe public static void main(String[] args) { int Tag = 0; int Monat = 0; int Jahr = 0; int Stunde = 0; int Minute = 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 sStunde=""; String sMinute=""; // Tag, Monat, Jahr, Stunde, Minute | Könnte mithilfe von String Tokenizer viel einfacher gelöst werden ;-) if (trennzeichen == 0) { // ohne trennzeichen try { if (eingabe.length() > 10) fehler = true; sTag=eingabe.substring(0,2); sMonat=eingabe.substring(2,4); sJahr=eingabe.substring(4,6); sStunde=eingabe.substring(6,8); sMinute=eingabe.substring(8,10); } catch (Exception E) {fehler=true;} } else { // mit trennzeichen try { if (eingabe.length() > 14) fehler = true; 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); sStunde = eingabe.substring(k+1,l); sMinute = eingabe.substring(l+1,eingabe.length()); } catch (Exception E) { fehler=true; } } try { // in Integer umwandeln Tag = Integer.parseInt(sTag); Monat = Integer.parseInt(sMonat); Jahr = Integer.parseInt(sJahr); Stunde = Integer.parseInt(sStunde); Minute = Integer.parseInt(sMinute); } catch (Exception E) { fehler = true; } if (!fehler) fehler = checkDate(Tag,Monat,Jahr); //Gültigkeit des Datums if (!fehler) fehler = checkZeit(Stunde, Minute); //Gültigkeit der Zeit if(!fehler) { int day = getDay(Tag, Monat, Jahr); // Wochentag ausgabe = ausgabe(day, Stunde, Minute); //Methode die ausgabe vorbereitet EprogIO.println(ausgabe); } if(fehler) EprogIO.println("FALSCHE EINGABE"); //Ausgabe bei Fehler } public static int getDay(int Tag, int Monat, int Jahr) { //wurde 1:1 von mir übernommen int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; Jahr=Jahr+1900; 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; int anzahl = 0; for (int i=0; i 2) anzahl++; anzahl=anzahl+Tag-1; anzahl=anzahl % 7; return (t11+anzahl) % 7; } public static boolean checkDate(int Tag, int Monat, int Jahr) { //wurde geringfügig verändert if (Monat<1 || Monat>12) return true; if (Jahr>99) return true; if ((Monat==4) || (Monat==6) || (Monat==9) || (Monat==11)) if (Tag>30) return true; if (Tag>31) return true; if ((Tag==0) || (Monat==0)) return true; if (Monat == 2) { if ((Jahr % 4) == 0) { if (Tag>29) return true; } else if (Tag>28) return true; } return false; } public static boolean checkZeit(int Stunde, int Minute) { if (Stunde < 0 || Stunde > 24) return true; if (Minute < 0 || Minute >60) return true; return false; } public static String ausgabe(int day, int Stunde, int Minute) { //ausgabe = Wochentag switch (day){ case 0: ausgabe += "13467 123456 "; break;//SO case 1: ausgabe += "12356 123456 "; break;//MO case 2: ausgabe += "123456 56 "; break;//DI case 3: ausgabe += "12356 56 "; break;//MI case 4: ausgabe += "123456 123456 "; break;//DO case 5: ausgabe += "1567 123567 "; break;//FR case 6: ausgabe += "13467 123567 "; break;//SA } //ausgabe = Wochentag + Uhrzeit if (Stunde < 10) ausgabe += "123456 "; if (Stunde > 9 && Stunde < 20) { ausgabe += "23 "; Stunde -= 10; } if (Stunde > 19) { ausgabe += "12457 "; Stunde -=20; } switch (Stunde){ case 0: ausgabe += "123456 "; break;//0 case 1: ausgabe += "23 "; break;//1 case 2: ausgabe += "12457 "; break;//2 case 3: ausgabe += "12347 "; break;//3 case 4: ausgabe += "2367 "; break;//4 case 5: ausgabe += "13467 "; break;//5 case 6: ausgabe += "134567 "; break;//6 case 7: ausgabe += "1236 "; break;//7 case 8: ausgabe += "1234567 "; break;//8 case 9: ausgabe += "123467 "; break;//9 } if (Minute < 10) ausgabe += "123456 "; if (Minute > 9 && Minute < 20) { ausgabe += "23 "; Minute -= 10; } if (Minute > 19 && Minute < 30) { ausgabe += "12457 "; Minute -= 20; } if (Minute > 29 && Minute < 40) { ausgabe += "12347 "; Minute -= 30; } if (Minute > 39 && Minute < 50) { ausgabe += "2367 "; Minute -= 40; } if (Minute > 49 && Minute < 60) { ausgabe += "13467 "; Minute -= 50; } switch (Minute){ case 0: ausgabe += "123456 "; break;//0 case 1: ausgabe += "23 "; break;//1 case 2: ausgabe += "12457 "; break;//2 case 3: ausgabe += "12347 "; break;//3 case 4: ausgabe += "2367 "; break;//4 case 5: ausgabe += "13467 "; break;//5 case 6: ausgabe += "134567 "; break;//6 case 7: ausgabe += "1236 "; break;//7 case 8: ausgabe += "1234567 "; break;//8 case 9: ausgabe += "123467 "; break;//9 } return ausgabe; } }
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