mein prof hat uns eine aufgabe gestellt und irgendwie komme ich nicht weiter, naja die aufgabe ist zwar gelöst aber sobald die aufgabe geprüft wird gibts mekker da es nicht elegant gelöst wurde. somit eine bitte -> ich will keine lösung oder so, ich brauch n denkanstoss oder eine teillösung.
soo aufgabe besteht darin vorgabe -> aufruf : //------------------------------------------------------------------------- System.out.println(asString(parse("11.10.2007"))); System.out.println(asString(parse("11.10.2007 10"))); System.out.println(asString(parse("11.10.2007 10:20"))); System.out.println(asString(parse("11.10.2007 19:17:30"))); System.out.println(asString(parse("1.10.2007 19:17:30"))); // //-------------------------------------------------------------------------
//----------asString ist nicht gerade für die aufgabe relevant da es ja funktioniert ---- //----------aber da asString in der vorgabe angegeben ist gebe ich es auch lieber an....
mein "total uneffizienter" code -> der funktioniert zwar aber nur auf die vorgabe zb -> wird das datum "1.1.2007 1:01" abgefragt/geparst müsste ich den code wieder anpassen... meine frage ist: wie schaffe ich den code so anzupassen dass es einigermassen universell ist ich habe diesen folgenden code so geschrieben damit ich nachfolgende aufgaben erstmal zumindest lösen kann... und mich später wieder dieser "parse"-aufgabe widmen kann...
//------------------------------------------------------------------------- private static Date parse(String date1) {
SimpleDateFormat sdf1 = new SimpleDateFormat("dd.MM.yyyy"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd.MM.yyyy HH"); SimpleDateFormat sdf3 = new SimpleDateFormat("dd.MM.yyyy HH:mm"); SimpleDateFormat sdf4 = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); SimpleDateFormat sdf5 = new SimpleDateFormat("d.MM.yyyy HH:mm:ss"); try { if (date1.length() == 10) {Date nd = sdf1.parse(date1);return nd;} if (date1.length() == 13) {Date nd = sdf2.parse(date1);return nd;} if (date1.length() == 16) {Date nd = sdf3.parse(date1);return nd;} if (date1.length() == 19) {Date nd = sdf4.parse(date1);return nd;} if (date1.length() == 18) {Date nd = sdf5.parse(date1);return nd;}