Date Probleme

deathy87

Grünschnabel
Hallo,

ich bin heute Aufgrund meines Problems auf dieses Forum gestoßen und dachte mir anmelden kann ja nicht schaden ;)

so nun zum Thema... es geht um Java um genau zu sein um einen Kalender...

Der Kalender soll über RMI und JDBC laufen...

so jetzt aber konkreter zu meinem Problem...

ich weiss nicht wie ich das Datum für die GUI und die DB Mapper bereitstellen soll...
In der Gui soll man ein Termin eingeben können, also als String... dann muss dieser String geparsed und in ein Date(oder ähnliches) umgewandelt werden und anschließend muss das Date in die DB geschrieben werden...

vllt könnt ihr mir dabei helfen.

Für Vorschläge und Anregungen wäre ich sehr dankebar!

LG deathy

edit.: ps.: ich weiss nichtmal ob ich überhaupt Date oder vllt doch lieber GregorienKalender benutzen soll... naja ich bin ziemlich verzweifelt ...

edit2: Falls ich das Problem nicht ausreichend geschildert habe... fragt einfach!
 
Zuletzt bearbeitet:
Danke für deine Antwort vlt_freak...

Aber vllt sollte ich mein Problem nochmal näher beschreiben...

ich lerne gerade Programmieren im Studium... nun haben wir eine Gruppenaufgabe bekommen wir sollen einen Kalender hacken...

2 Leute sind für die Gui verantwortlich
2 Leute für die Applikationslogik (ich)
2 Leute für die db und die Mapper

so

ich bin in der Applikationslogik und ich soll der GUI Methoden bereitstellen, welche die dann verwenden können ..

ich hab zb folgende klassen: eine abstrakte Kalendereintrag Klasse welche superklasse von Termin, Wiederholung und Alarm ist...

Ah und außerdem ist es wichtig, dass Termin, Wiederholung und Alarm über das Datum dem Kalender zugeordnet werden können ...

Hier jetzt die Kalendereintrag Klasse... :

Code:
package data;
import java.lang.String;
import java.rmi.RemoteException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;


public abstract class KalendereintragImpl
        extends java.rmi.server.UnicastRemoteObject
        implements Kalendereintrag
        {
     
    private int kalendereintragId;

    private Date kalendereintragStart;

    private Date kalendereintragEnde;

    private String titel;

    private String ort;

    private int autor;

    private String beschreibung;

    private int kategorieId;

    private GregorianCalendar calendar = new GregorianCalendar();


//einer meiner versuche das Problem zu lösen...
    //public SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
    //GregorianCalendar date = dateFormat.parse(date);
    
    public KalendereintragImpl () throws RemoteException{
        super();
    }

    public Date getDate ()
            throws java.rmi.RemoteException{
            return calendar.getTime();
    }
    
    public void setDate (Date date)
            throws java.rmi.RemoteException{
            calendar.setTime(date);
    }

    public Date getKalendereintragStart ()
    throws java.rmi.RemoteException{
        return kalendereintragStart;
    }

    public Date getKalendereintragEnde ()
    throws java.rmi.RemoteException{
        return kalendereintragEnde;
    }

    public String getTitel () 
    throws java.rmi.RemoteException{
        return titel;
    }

    public String getOrt () 
    throws java.rmi.RemoteException{
        return ort;
    }

    public String getBeschreibung () 
    throws java.rmi.RemoteException{
        return beschreibung;
    }

    public int getAutor () 
    throws java.rmi.RemoteException{
        return autor;
    }

    public int getKategorieId () 
    throws java.rmi.RemoteException{
        return kategorieId;
    }

    public void setKalendereintragStart (Date date)
    throws java.rmi.RemoteException{
        kalendereintragStart = date;
    }

    public void setKalendereintragEnde (Date date){
        kalendereintragEnde = date;
    }

    public void setTitel (String string) {
        titel = string;
    }

    public void setOrt (String string) {
        ort = string;
    }

    public void setBeschreibung (String string) {
        beschreibung = string;
    }

    /*public void setKategorieId (int i) {
        KategorieId = i;
    }*/

    public void setAutor (int i) {
        autor = i;
    }



}

Nun nochmal zu meinem Problem ich habe keine Ahnung wie ich das Datum bzw. Calender bereitstellen kann, damit meine Mitstreiter keine Probleme haben... ich bin grade mit dem oberen Teil beschäftigt vor allem mit den setDate und getDate... ich hab mir das irgendwie so vorgestellt, das setDate das Datum setzt an welchem der Kalendereintrag eingetragen werden soll und KalendereintragStart und Ende sind dafür da ein Start und Endzeit einzugeben...

Aber ich kriege es mit meinem bisherigen Javawissen nicht hin :(
 
Zuletzt bearbeitet:
wir sollen einen Kalender hacken
Hacken im Sinne von exploiten, oder hacken im Sinne von programmieren? ;-]

Ich erfasse die Aufgabenstellung nicht ganz, ich versuche trotzdem etwas sinnvolles beizutragen.
Ich vermute das Interface Kalendereintrag und die abstrakte Klasse KalendereintragImpl sind vorgegeben. Dann gilt es die drei Klassen (Termin, Wiederholung und Alarm) die von der abstrakten Klasse abgeleitet sind zu implementieren. Dabei kann gemeinsame Programmlogik in der abstrakten Klasse untergebracht werden, falls Methoden gleich sind oder sich die Logik rein in der abstrakten Klasse abspielt.

Danach hat man dann 3 Typen, die z.B. in einem Objekt was Kalendereinträge gespeichert benutzt, werden können. Folgendes wäre danach dann denkbar:
z.B.
Code:
Kalendereintrag termin1 = new Termin();
Kalendereintrag termin2 = new Termin();
Kalendereintrag alarm1 = new Alarm();

KalendereintragVerwaltung k = new KalendereintragVerwaltung();
k.addKalendereintrag(termin1);
k.addKalendereintrag(termin2);
k.addKalendereintrag(alarm1);

boolean b = k.istNochFreiAnDatum(new Date());
KalenderEintrag eintrag = k.wasGehtAnDatum(new Date());
Vielleicht liegt das nahe deiner Aufgabenstellung. Ansonsten könntest du genauer beschreiben wo es gerade hängt.
 
Moin,

ich würde Dir auf jeden Fall von "Date" abraten - siehe auch hier :
http://www.tutorials.de/forum/java-grundlagen/333425-datum-abgleichen.html
und stattdessen "java.util.Calendar" benutzen

Gruß
Klaus

Ich würde eher von Calendar abraten. Lieber mit SimpleDateFormat von der GUI den Zeitstempel String in ein Date Objekt wandeln und das dann in ein java.sql.Date wandeln und das dann letztendlich in die Datenbank schreiben.

Durch Calendar entsteht unnötiger overhead. Den braucht man wenn man die Zeitzone und Zugrifssfunktionen auf einzelne Felder(Jahr,Stunde, Minuten.....) während der Verarbeitung braucht.
 
Ich würde eher von Calendar abraten. Lieber mit SimpleDateFormat von der GUI den Zeitstempel String in ein Date Objekt wandeln und das dann in ein java.sql.Date wandeln und das dann letztendlich in die Datenbank schreiben.

Durch Calendar entsteht unnötiger overhead. Den braucht man wenn man die Zeitzone und Zugrifssfunktionen auf einzelne Felder(Jahr,Stunde, Minuten.....) während der Verarbeitung braucht.

Hallo Anime-Otaku,
Danke für den sicherlich gut gemeinten Ratschlag, allerdings sprechen bei uns in der Firma leider zwei Dinge dagegen :
Zum einen brauchen wir die einzelnen Felder bis runter zur Sekunde, und zum anderen wird das leider nix mit SQL, da wird BTrieve einsetzen :rolleyes:
Das ist ein besserer Recordmanager, in dem einfach BYTE-ketten abgelegt werden. Und hier gibt es bei aufgrund obstruser Datenstrukturen die wildesten Datumsformate und es muss in den dahinterliegenden in C++ geschriebenen Servern eh' ständig hin und her konvertiert werden!
Von daher ist "Calendar", was mein Vorgänger mal eingeführt hat, schon ganz ok. Die ermittelten Werte werdern dann eh an ein SpinnerModel weitergegeben ....
Danke und Gruß
Klaus
 
Hacken im Sinne von exploiten, oder hacken im Sinne von programmieren? ;-]

Ich erfasse die Aufgabenstellung nicht ganz, ich versuche trotzdem etwas sinnvolles beizutragen.
Ich vermute das Interface Kalendereintrag und die abstrakte Klasse KalendereintragImpl sind vorgegeben. Dann gilt es die drei Klassen (Termin, Wiederholung und Alarm) die von der abstrakten Klasse abgeleitet sind zu implementieren. Dabei kann gemeinsame Programmlogik in der abstrakten Klasse untergebracht werden, falls Methoden gleich sind oder sich die Logik rein in der abstrakten Klasse abspielt.

Danach hat man dann 3 Typen, die z.B. in einem Objekt was Kalendereinträge gespeichert benutzt, werden können. Folgendes wäre danach dann denkbar:
z.B.
Code:
Kalendereintrag termin1 = new Termin();
Kalendereintrag termin2 = new Termin();
Kalendereintrag alarm1 = new Alarm();

KalendereintragVerwaltung k = new KalendereintragVerwaltung();
k.addKalendereintrag(termin1);
k.addKalendereintrag(termin2);
k.addKalendereintrag(alarm1);

boolean b = k.istNochFreiAnDatum(new Date());
KalenderEintrag eintrag = k.wasGehtAnDatum(new Date());
Vielleicht liegt das nahe deiner Aufgabenstellung. Ansonsten könntest du genauer beschreiben wo es gerade hängt.

1. hacken im sinne von programmieren
2. es ist eigentlich nicht viel vorgegeben... wir müssen alles selber machen... es handelt sich um ein etwas größeres Aufgabe wir haben dafür auch schon etwas länger Zeit... bisher lief auch alles ganz gut... bis zu diesem Datum... ^^

Vllt hilf es, wenn ich genau erkläre was mit dem DAtum alles gemacht werden soll...

Also das Datum (ob Calender, Date oder String, etc.) soll Bestandteil eines Kalendereintrags sein, welcher an Termin, Wiederholung & Alarm vererbt.
- Termin soll praktisch sowas sein wie von 8-10h habe ich einen Termin beim Arzt
- Alarm kann optional gesetzt werden und ist mit einer Erinnerung gleichzusetzten also zb.: um 7h werde ich daran erinnert, dass ich von 8-10h einen Termin habe.
Deswegen muss ein Alarm auch einem bestimmten Termin zugeordnet werden können.
- Wiederholung: kann optional gesetzt werden um einem bestimmten Termin eine Wiederholung zuzuordnen also 4 Wochen lang in Folge habe ich einen Termin um 8.-10h bei meinem Arzt. Hier muss also Date eine bestimmter Wert dazuaddiert werden...

Mein Problem ist jetzt den ganzen Spaß unter einen Hut zu bekommen... oder unter mehrere ;)

3. Es gibt auch eine Kalenderverwaltung da stehen dann so ein paar Methoden zum instanzieren der TerminImpl... die ist aber auch noch nicht fertig, weil ich mit dem Datum nicht weiterkomme :(

Code:
public Termin createTermin ( )

gilt es also noch zu füllen ;)

greetz deathy

p.s.: hoffentlich ließt irgendjemand diesen ellenlangen Text ;)

pps.: es muss nicht mal sehr elegant sein... es muss fürs erste einfach funktionieren! ;)

ich glaub so wie ich es jetzt gemacht habe könnte es nacher funktionieren aber sicher bin ich mir nicht... ich hab mal das ganze projekt in den Anhang gepackt...

Ich würde mich freuen, wenn jemand drüberguggen könnte... also data und verwaltung habe ich gemacht... es sind auch noch Fehler drin bzw. ich versuche mich grade an der Wiederholung eines Termins

GUI, Reportgenerator und DB sind noch nicht implementiert... dafür bin ich nicht zuständig ;)

ps.: das ganze muss nur funktionieren die Laufzeit spielt jetzt erstmal keine Rolle
 

Anhänge

  • GruppenKalenderMarko.zip
    63,2 KB · Aufrufe: 12
Zuletzt bearbeitet:

Neue Beiträge

Zurück