Wie ordne ich die aktuelle Zeit in einer Zeitreihe eine?

Status
Nicht offen für weitere Antworten.

Kidao

Mitglied
Hallo!

Ich habe weniger ein Problem mit der Programmierung sondern damit einen richtigen Algorithmus für meine Aufgabe zu finden und zwar programmiere ich ein kleines Fahrplan-Programm für mein Handy und die Zeiten für meinen Bus lese ich aus einer XML ein, die so aussieht:
Code:
<Stadt1>
            <MoFr>
        	<Bushof>
                    
                    <B211>
                        <RiStadt2>
                            04:51 05:21 05:51 06:21 06:51 07:21 07:51 08:21 08:51 09:21 09:51 10:21 10:51 11:21 11:51
 12:21 12:36 12:51 13:21 13:51 14:21 14:36 14:51 15:21 15:51 16:06 16:21 16:36 16:51 17:06 17:21 17:36 17:51
 18:06 18:21 18:51 19:21 19:51 20:30 20:42 21:42 22:42 23:42 00:42
                        </RiStadt2>
                    </B211>
                    
                </Bushof>
            </MoFr>
</Stadt1>

Die Zeiten speichere ich dann einzeln in einem String-Array.

Meine Idee ist es die aktuelle Zeit in diese Zeitreihe einzuordnen und dann die Differenz zwischen der aktuellen Zeit und der nächst größten in der Zeit-Liste auszugeben. Zum Beispiel wenn wir 12:15 hätten, dann würde sich die Zeit zwischen 11:51 und 12:21 einordnen und die Differenz zwischen 12:15 und 12:21 ausrechnen und ausgeben.
Das Problem fängt an, wenn die nächstgrößte Zeit hinter der 24:00-Grenze und die aktuelle Zeit davor befindet. 00:42 gehört zwar schon zum nächsten Tag doch, gefühlsmäßig zählt der Mensch diese Zeit noch zum Tag davor.

Wie könnte ich es machen, damit 00:42 zeitwertmäßig größer als z.B. 23:43 betrachtet werden könnte?

MfG
Kidao
 

Ariol

Top Contributor
Hmm, nimm die Zeit doch als 24:42, aber lass es später als 0:42 ausgeben.

z.B. mit Modulo
 

Murray

Top Contributor
Es bleibt dann aber doch das Problem bestehen, dass der Fahrplan eigentlich keinen beschränkten Zeitraum von einem Tag, einer Woche etc. darstellt, sondern sich kontinuierlich wiederholt. Und kommt man immer irgendwo an die Grenze und muss den Übertrag behandeln.

Du wirst also immer irgendwo erkennen müssen, dass die aktuelle Zeit hinter dem letzten Eintrag liegt und musst dann wieder mit dem ersten anfangen.
 
G

Gast

Gast
Hallo

fuer Zeiten/Termine gibt es doch java.util.Date. Sprich benutzte statt String die Date API von java.

Falls du Sie nicht benutzt (wie ich uebrgiens auch) weil sie einfach schlecht ist kann ich dir joda-time empfehlen.

joda-time.sourceforge.net/

Benutzen wir seit laengeren ohne Probleme und der Vorteil davon Zeitberechnung machen wieder Spass.....
 

NTB

Bekanntes Mitglied
Sollte er diese Berechnungen auf dem Handy machen wollen, kann er das aber getrost vergessen.
 
G

Gast

Gast
Vorweg: Ich kenne mich nicht im Bereich J2ME aus aber ich wuerde erwarten das auch auf einem Handy der Einsatz von einem jar moeglich ist.

Also bitte klaere mich auf: Wo liegt das Problem ? (Eine kurze Begruendung langt schon...)
 

Kidao

Mitglied
Hallo!

Erstmal vielen Dank für die Anregungen und Tipps! ;)

@Gast: Ja in J2ME kann ich auch extrene Bibliotheken problemlos implementieren und benutzen und joda scheint wirklich interessant zu sein, das schaue ich mir bei Gelegenheit näher an.

Habe das Problem jetzt theoretisch mehr oder weniger gelöst und zwar gehe ich wie folgt vor:
1. Bilde ich aus dem Zeiten-Array einen geschlossenen Kreis, d.h. Das letzte Element wird gleichzeitig das pseudo-erstes Element.
2. Lasse ich die aktuelle Zeit durch den Zeiten-Array durchlaufen, wenn sich die aktuelle Zeit einordnen kann, ist alles OK.
3. Sonst da (Meiner Meinung nach) der einzige Fall, wo es Probleme entstehen, an der 24h Grenze liegt, lasse ich zu den Zeiten, die nach der Aktuellen Zeit kommen 24:00 addieren.

Am Beispiel oben würde es dann wie in etwa so aussehen:

Ich habe jetzt 17:58....ich suche eine Position wo, Elemnt(i) < 17:58 < Element(i+1), in unserem Fall zwischen 17:51
und 18:06, dann nehme ich Element(i+1), also 18:06, rechne die Differenz aus, 8 Minuten und gebe diese aus.

Angenommen wir haben 3:00 .... das erste Element ist gleichzeitig auch das pseudo-erstes und somit trifft die Einordnung sofort bei der ersten Untersuchung ein und die Uhrzeit 04:51 wird genommen, die Diff. ausgerechnet und dargestellt.

Angenommen wir haben 23:50 ... die Aktuelle Zeit kann sich nirgendwo einordnen, da alle Elemente kleiner sind.
Es wird untersucht, ob es ein Element gibt, das auch mit 23 anfängt, wenn ja, wird das mit den größten Minuten genommen, in unserem Fall 23:42. :D, ansonsten müssen wohl oder übel die Differenzen von allen Zeit-Elementen mit der aktuellen Zeit verglichen und dann wird das Element mit der kleinsten Diff. die Grenze sein. 23:42 ist jetzt die Grenze ab welcher zu jedem Zeit-Element 24:00 addiert wird. D.h 00:42 + 24:00 = 24:42 ....dann läuft noch mal der Vergleich durch und 23:50 kann sich wunderbar zwischen 23:42 und 24:42 einordnen und die Diff. kann ausgerechnet werden.

...Und GENAU AN DIESER Stelle sehe ich den Fehler in meinen Gedanken....
...denn angenommen wir haben 00:20, die Zeit kann sich auch nirgendwo einordnen und das ganze endet mit einer Exception, da 00:42 als Grenze keine Nachfolger hat...


Ich glaube ich erweitere die Zeitreihe einfach mit 00:01 am Anfang und 28:00 am Ende und alles nach 23:59 wird zu 24:XX bis 27:59....das müsste klappen oder übersehe ich da wieder etwas?


MfG
Kidao
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
A Swing Immer aktuelle Mausposition anzeigen lassen Allgemeine Java-Themen 7
F Aktuelle Variable Allgemeine Java-Themen 2
Bluedaishi Dateien löschen die älter als das aktuelle Datum sind Allgemeine Java-Themen 9
M Aktuelle Systemzeit und Datum abfragen Allgemeine Java-Themen 2
K kontinuierlich aktuelle Bestellsystem-Liste mit farbigem Status Allgemeine Java-Themen 2
F Die aktuelle Uhrzeit zurückgeben lassen Allgemeine Java-Themen 4
DEvent Aktuelle Uhrzeit per Anwendung Allgemeine Java-Themen 4
MQue aktuelle Wetterdaten für Java- Programm Allgemeine Java-Themen 9
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
G Reflection: aktuelle bzw umschliessende Methode? Allgemeine Java-Themen 7
B Aktuelle Zeit im Format YYYY-MM-DD HH-MM-SS in Logfile schre Allgemeine Java-Themen 8
R Aktuelle Kompatibilitätsliste für JRE auf verschiedenen OS´s Allgemeine Java-Themen 2
G Aktuelle JRE Version? Allgemeine Java-Themen 7
F Wie bekomme ich die aktuelle aufgerufene Methode herraus? Allgemeine Java-Themen 6
L Das aktuelle Directory, in dem sich das Programm ausdrucken Allgemeine Java-Themen 8
G Das aktuelle Fenster drucken Allgemeine Java-Themen 13
J File: Inhalt des Ordners aus dem die aktuelle Datei ausgefüh Allgemeine Java-Themen 6
O aktuelle Tage bis zum jahresende ermitteln Allgemeine Java-Themen 3
S aktuelle url aus browser holen Allgemeine Java-Themen 5
F Zeit Optimierung - bzw. ms Optimierung Allgemeine Java-Themen 35
J Message Box soll bei bestimmter Zeit angezeigt werden Allgemeine Java-Themen 19
K CET-Zeit benutzen Allgemeine Java-Themen 6
K Geschätze Zeit implementieren Allgemeine Java-Themen 14
Blender3D AWT Fehlerhafte Zeit bei Calender und Date DateFormat Allgemeine Java-Themen 8
2 Joda Time - Localtime mit anderer Zeit vergleichen? Allgemeine Java-Themen 1
O Java Hardware Software Zeit Allgemeine Java-Themen 7
H Bestimmte Aufgaben zur bestimmter Zeit/ in bestimmten Intervallen Allgemeine Java-Themen 3
F Zeit ermitteln Allgemeine Java-Themen 2
Q Zeit in GUI selbst aktualisieren Allgemeine Java-Themen 5
D Klassen Zeit aus NMEA-Stream in SimpleDateFormat Allgemeine Java-Themen 17
M AudioClip in Spiel mehrfach in kurzer Zeit abspielen Allgemeine Java-Themen 3
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
R Raum und Zeit Allgemeine Java-Themen 11
S Zeit Allgemeine Java-Themen 4
Z zeit zwischen maus drücken und loslassen Allgemeine Java-Themen 7
T Methodenparameter zur Compile-Zeit überprüfen Allgemeine Java-Themen 8
J Lizenz auf Zeit Allgemeine Java-Themen 8
X Codeabarbeitung innerhalb des Hauptprogramms für bestimmte Zeit unterbrechen Allgemeine Java-Themen 2
prakdi Zeit zum Durchlauf der Schleifen unverständlich!? Allgemeine Java-Themen 3
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
T Zeit von einem Server/Webseite auslesen und in eigener GUI anzeigen Allgemeine Java-Themen 6
C Leerzeilen verbrauchen Zeit! Allgemeine Java-Themen 5
J Datum und Zeit Allgemeine Java-Themen 4
data89 Zeit-Diagramm erstellen Allgemeine Java-Themen 11
G JComboBox getSelectedItem Zeit Allgemeine Java-Themen 5
Kr0e Sekunden -> Zeit Allgemeine Java-Themen 14
T Mit Datum und Zeit rechnen Allgemeine Java-Themen 8
B System CPU Zeit / Last auslesen Allgemeine Java-Themen 2
J zeit überscheidungen ermitteln Allgemeine Java-Themen 6
P Thread Demonstrationr eist durch die Zeit Allgemeine Java-Themen 4
A Compilierdatum/Zeit in Code eingenerieren Allgemeine Java-Themen 13
J zeit stoppen Allgemeine Java-Themen 11
M Zeit eines rechners im netzwerk ermitteln Allgemeine Java-Themen 6
C Umrechnung der Zeit Allgemeine Java-Themen 8
B 2 JList instanzen wo nur einer zur selben Zeit selektierbar? Allgemeine Java-Themen 8
I Thread eine bestimmte Zeit zur Ausführung geben Allgemeine Java-Themen 2
P Zeit messen Allgemeine Java-Themen 16
M Zeit läuft rückwärts Allgemeine Java-Themen 3
K Thread Safe Zeit Messung Allgemeine Java-Themen 2
D Programmunterbrechung für eine bestimmte Zeit (Millisikunden Allgemeine Java-Themen 10
K ServerSocket benötigt unmengen an Zeit Allgemeine Java-Themen 7
D Zeit messen Allgemeine Java-Themen 2
G try auf zeit Allgemeine Java-Themen 8
R Garbage Collector rennt die ganze Zeit Allgemeine Java-Themen 7
M Fortschritt: verbleibende Zeit errechen. Allgemeine Java-Themen 2
F Zeit errechnen mit GregorianCalendar Allgemeine Java-Themen 8
F vergangene Zeit berechnen Allgemeine Java-Themen 6
A Unix Zeit Allgemeine Java-Themen 2
D Datum und Zeit - Date, Calendar oder GregorianCalender ? Allgemeine Java-Themen 13
X Parameter bei Start über Batch-Datei übergeben(Tag und Zeit) Allgemeine Java-Themen 3
C Vergangene Zeit seit Anwendungsstart messen Allgemeine Java-Themen 5
T Zeit aufaddieren Allgemeine Java-Themen 3
T zeit in java Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben