Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-04-2006, 15:31   #1 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
Datumsangaben in verstrichene Tage umrechnen

Hallo.

Ich würde mich nach längerem erfolglosen Grübeln über einen Denkanstoß freuen:

Ich habe eine fortlaufend-erweiterbare Reihe von Datumsangaben (plus natürlich dazugehöriger Werte) in einem Hauptarray, und möchte anhand dieser Datumse gerne Punkte in einer Chart eintragen.
Dazu dachte ich, wäre es ganz praktisch, aus den Datumsangaben einen array zu erzeugen, in dem die Datumse umgerechnet werden auf hochaddierte Tage. Also: 25.3.->1, 28.3.->4, 1.4-> 7 ... dann kann ich alle Werte später über ihren Index der Chartposition zuordnen. Wobei es hier um den horizontalen Abstand der Punkte (Datumse) zueinander geht.

Die Frage ist dabei nur: wie kriege ich das Hochzählen dynamisch hin? Statisch geht das. Jahr, Monat, Tag immer überprüfen, und die Tageseinheit entsprechend hochsetzen.

Code:
...
if (aDatumMonat[i] == 8){
t = 8 + 30 + 31 + aDatumTag[i];
} else if (aDatumMonat[i] == 9){
t = 8 + 30 + 31 + 31 + aDatumTag[i];
...
Igitt. Das sind jede Menge Abfragen in einer Schleife, von denen ich sehr sicher bin, dass sie vermeidbar sind. :-) Jemand eine Idee?
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 15:37   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Sorry, aber ich verstehe nur Bahnhof.

Was sind "Datumse"? Was soll "hochaddiert" sein (25.3.->1) - wieso 1??? Und was ist das hier für eine Rechnung t = 8 + 30 + 31 + aDatumTag[i];???

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-04-2006, 15:45   #3 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
Zitat:
Zitat von Der Frager
Sorry, aber ich verstehe nur Bahnhof.

Was sind "Datumse"? Was soll "hochaddiert" sein (25.3.->1) - wieso 1??? Und was ist das hier für eine Rechnung t = 8 + 30 + 31 + aDatumTag[i];???

datumse sind datum-daten: zB 25.3.2006.
hochaddiert werden sollen die verstrichenen tage seit erstem datum.
1 ist hier also der starttag.

mein erster tag in meiner chart ist zb der 25.3.
die frage, die sich mir danach immer stellt, ist: wo kommt dann der punkt für das nächste datum hin? ich möchte gerne alle tagesdifferenzen addieren und in einem array sammeln, wo dann nicht mehr steht 25.3., 28.3., 1.4., sondern eben 1,4,7. so kann ich später elegant mit teilen meiner daten arbeiten und habe immer den richtigen (ja beliebig skalierbaren, aber in sich stimmigen) x-wert für meine chart parat.

tja... lässt sich da was algorhythmisieren?
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 15:49   #4 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
(nachtrag zu der komischen rechnung oben: statisch umständlich ist das ganze ja durchaus machbar, aber nur in grenzen. da heißt es dann, den startwert mehr oder minder statisch festlegen und dann immer schön gucken: addier mal in der schleife aller werte die tageszahl des datum-wertes zur tageszahl des letzten wertes, es sei denn, der monat ist nicht gleiche, dann addiere je nachdem, welches monat, mal entsprechend viele tage hinzu, es sei denn, das jahr ist auch anders... usw... bäh, das ist ja absurd..)
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 16:10   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hmmm...
PHP-Code:
var daten = ["25.3.2006""28.3.2006""1.4.2006""12.4.2006"];
for (var 
0x<daten.lengthx++) {
    var 
daten[x].split(".");
    
this["d"+x] = new Date(d[2], d[1], d[0]);
}
for (var 
1x<daten.lengthx++) {
    
trace("Das Datum "+daten[x]+" liegt "+((this["d"+x].getTime()-d0.getTime())/86400000)+" Tage hinter "+daten[0]);

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-04-2006, 16:13   #6 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
wird gleich mal durch gekaut...
hab ich mir doch gedacht, dass das eigentlich GAAANZ einfach ist.

Danke, lieber Frager!
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 16:15   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Das ist gar nicht so schwer. Sieht nur etwas wirr aus...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-04-2006, 16:18   #8 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
nö, sieht übersichtlich aus... top!
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 17:07   #9 (permalink)
User
 
Benutzerbild von kolumnen
 
Registriert seit: Jan 2002
Beiträge: 174
kleiner monats-bug, oder?

funktioniert exzellent, der vollständigkeit halber nur der hinweis:

die monate stimmen so noch nicht mit der realität überein, und dadurch rechnen sich auch die tage spürbar falsch hoch, weil im schnippsel aus monat 9 noch oct statt sep wird. lässt sich natürlich leicht beheben, im prinzip durch sowas wie

Code:
this["d"+i] = new Date(d[2], Number(d[1] - 1), d[0])
( statt alt:
Code:
this["d"+i] = new Date(d[2], d[1], d[0])
)

(wirklich genial, dass der DATE- index bei jahr und tag mit 1 startet, bei monat aber mit 0.)

nochmal danke
kolumnen ist offline   Mit Zitat antworten
Alt 25-04-2006, 17:12   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Stimmt ... Habe ich nicht dran gedacht...

Gibt ja immer wieder solche Fallen. Toll auch: Sound und position(). Beim Starten gibt man die Sekunden an und ausgelesen werden Millisekunden.
Naja, hast es ja hingebogen.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele