datum = new Date();

Mit obiger Aktion im ersten Schlüsselbild wird das Datum newDate();  an die Variable, die ich hier mal datum genannt habe, übergeben

Man muß also zunächst einmal eine Instanz des Date-Objekts erstellen.

Aus dieser Instanz werden die gewünschten Methoden entnommen, z.B. das Jahr: datum.getFullYear()

jahr=datum.getFullYear();

Seite 2

datum = new Date();

now = (datum.getDate()+"/"+(datum.getMonth()+1)+"/"+datum.getFullYear());

zeit= (datum.getHours()+":"+datum.getMinutes()+":"+datum.getSeconds());

Die Variable für das Datum des heutigen Tages nenne ich now. Sie greift auf die Instanz des Date-Objekts zu und holt sich dort die gewünschten Methoden. Diese werden mit + verknüpft. Dabei wird in diesem Falle der Tag, der Monat und das Jahr der lokalen Zeit ermittelt. Beachte, daß der erste Monat Januar mit 0 beginnt, deshalb wurde dort eine 1 addiert. Außerdem wurden dazwischen Schrägstriche eingefügt, Näheres dazu siehe. variable.swf  Seite 2

In der Variablen zeit wird die Uhrzeit in Stunden, Minuten und Sekunden wiedergegeben. Die Optionen der Textfelder sind: dynamisch, eine Zeile. Damit die Zeit in der gewünschten Schriftart angezeigt wird, wurden die benötigten Zeichen im Bedienfeld Textoptionen eingebettet.

Lokale Zeit ist die des Rechners. Man kann auch die Weltzeit abrufen. Dazu gibt es verschiedene  Methoden, die alle in der Hilfe von Flash aufgelistet sind.

Seite 3

datum = new Date();

tag = datum.getDay();

text = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");

ausgabe = text[tag];

.getDay() gibt die Wochentage als Zahlen nach lokaler Zeit zurück.  Dabei steht 0 für Sonntag, 1 für Montag, 2 für Dienstag etc. Da man aber keine Zahl, sondern einen der Wochentage in Worten anzeigen will, erstellt man ein Array. Näheres dazu im SWF Beispiel Array. Die Wochentage werden der Reihe nach als Elemente des Arrays text definiert. In dem Array sind diese Elemente  jeweils einem numerischen Index zugeordnet, beginnend bei 0. Da auch die Wochentage von .getDay() bei 0 beginnen, passt das wunderbar zusammen. In der Variablen ausgabe wird das Array angesprochen, der numerische Index in eckigen Klammern wird der Variablen tag entnommen und so das entsprechende Element (der Wochentag) übergeben.

Es gibt aber auch die Möglichkeit auf ein array zu verzichten. Auf der nächsten Seite, wird eine Aktion erstellt,  die bei jedem Wochentag zu einem anderen Bild in der Zeitleiste springt.

Seite 4

datum = new Date();

now = (datum.getDay());

gotoAndStop (now+3);

Im ersten Bild der Zeitleiste erscheint obige Aktion.

In der Zeitleiste sind  7 Schlüsselbilder für jeden Wochentag eins, beginnend bei

Sonntag auf Bild 3.

Durch gotoAndStop (now+3); springt der Film zu dem entsprechenden

Schlüsselbild.

Ich könnte natürlich auf die Variable now verzichten und stattdessen schreiben:

gotoAndStop ((datum.getDay())+3);

Seite 5

now = new Date();

xmas = new Date(jahr, 11, 24, 0, 0, 0);

datedif = Math.floor ((xmas.getTime()-now.getTime())/1000);

jahr=now.getFullYear();

Hier wollen wir die Zeit bis Weihnachten diesen Jahres errechnen. Der Variablen now wird im ersten Textfeld das aktuelle Datum übergegeben. In der Variablen jahr, wird das aktuelle Jahr übergeben. In einer weiteren Instanz des Date Objekts namens xmas wurde newDate ein  eigenes Datum zugewiesen und zwar in der Reihenfolge Jahr, Monat (Januar=0), Tag, Stunde, Minute und Sekunde. Man könnte noch einen Wert für Millisekunden anfügen. Das Jahr wird der Variabeln jahr entnommen, da es Weihnachten diesen Jahres sein soll.

In der Variablen datedif wird die momentane Zeit now von der eingegebenen Zeit xmas abgezogen und zwar mit getTime. Dadruch wird der Wert in Millisekunden zurückgegeben. Das Ganze steht in Klammern und wird durch 1000 geteilt, damit man Sekunden erhält.  Durch Math.floor() wird der Wert, der in Klammern steht, als Ganzzahl zurückgegeben, weitere Infos rechnen.swf

Auf der nächsten Seite werden hieraus die Monate, Tage, Stunden, Minuten und Sekunden errechnet.

Seite 6

minute = Math.floor (datedif/60);

stunde = Math.floor (minute/60);

tage = Math.floor (stunde/24);

monat = Math.floor (tage/30.5);

Hier wird einfach der Wert von datedif, der die Zeit in Sekunden darstellt, durch die entsprechenden Werte geteilt, so daß Minuten Stunden und Tage herauskommen. Bei den Monaten habe ich Tage durch 30,5 geteilt, da Monate mal 30 mal 31 Tage haben. Okay, so ganz genau ist das nicht.

Hiermit gibt es eine Menge Einsatzmöglichkeiten, zusammen mit einer if Abfrage ließe sich beispielsweise  eine Art Wecker erstellen. Eine andere Einsatzmöglichkeit wäre eine aktuelle Anzeige einer Auktion, wo der Preis beispielsweise wöchentlich fällt.

Auf der nächsten Seite kann der User ein eigenes Datum eingeben.

Seite 7datedif = Math.floor ((mydate.getTime()-now.getTime())/1000); minute = Math.floor (datedif/60); stunde = Math.floor (minute/60); tage = Math.floor (stunde/24); monat = Math.floor (tage/30.5);

now = new Date();

mydate = new Date(myyear, mymonth-1, myday, myhour, myminute);

Die Texteingabefelder haben die darunter stehenden Variablennamen.

Im ersten Frame wird daraus ein new Date in der Variablen mydate erstellt. Anstatt die Werte für Jahre, Monate etc. in Klammern einzugeben wurden die Variablennamen dort eingetragen.

Das jetzige Datum wird dann genau wie zuvor davon abgezogen.

Seite 8

minuterest = Math.floor (((datedif%86400)%3600)/60);

sekunderest = ((datedif%86400)%3600)%60;

stunderest = Math.floor ((datedif%86400)/3600);

tagefull = Math.floor (datedif/86400);

now = new Date();

mydate = new Date(myyear, mymonth-1, myday, myhour, myminute);

Hier kommt das sogenannte modulo ins Spiel. Dadurch wird der Restbetrag angezeigt. wert1%wert2 Weitere Infos zum Thema siehe rechnen.swf.

Damit auch Eingabewerte in der Vergangenheit richtig angezeigt werden, wird (sobald datedif kleiner als 0 ist) mit Math.ceil aufgerundet.

Siehe Actionscript (if else) in der fla Datei.

Seite 9now = new Date(); anzeige = (now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear()); now2 = new Date(); nowplus=now2.setDate(now.getDate()+120); anzeige2 = (now2.getDate()+"/"+(now2.getMonth()+1)+"/"+now2.getFullYear());

Will man zum jetzigen Datum oder zu einem neu bestimmten Datum eine gewisse Anzahl Tage hinzuzählen oder abziehen und sich anschließend dieses neue Datum anzeigen lassen, so wäre das mit der zuvor beschriebenen Methode nicht möglich. Dazu gibt es die Action setDate mit der man einem Datumsobjekt Tage hinzufügen kann.

Wie man oben sehen kann habe ich dem Datumsobjekt now2 in der Varibale nowplus mit .setDate() dem jetzigen Tag now.getDate() 120 Tage hinzuaddiert. Anschließend hole ich mir unter anzeige2 den Tag, Monat und das Jahr aus now2.

Außerdem kann man auch noch Jahre, Monate, Stunden etc. zuweisen, siehe Aktionenbedienfeld Objekte/Date/ setFullYear...setHours....etc.

2006now1 now2

Nachdem die beiden Datumswerte now1 und now2 erzeugt wurden, wird bei minusTag now2 ein neues Datum zugewiesen, indem der Tag des Monats abgezogen wird. Dadurch erhalten wir den letzten Tag des vorigen Monats.

Aus diesem Datum wird der Wochentag generiert. Wir erinnern uns: Sonntag=0, Montag=1,...etc. Unter minusWochentag wird now2 dieser Wochentagswert abgezogen und daraus mittels setDate() das neue Datum zugewiesen.

Letzer Sonntag diesen Monats:

now1 = new Date(myyear, mymonth-1, myday);

jahr1 = now1.getFullYear();

monat1 = now1.getMonth();

tag1 = now1.getDate();

now2 = new Date(jahr1, monat1, tag1);

minusTag = now2.setDate(now1.getDate()-tag1);

wochentag2 = now2.getDay();

minusWochentag = now2.setDate(now2.getDate()-wochentag2);

meinDatum = new Date(myyear, mymonth-1);

jahr1 = meinDatum.getfullyear();

monat1 = meinDatum.getmonth()+1;

now2 = new Date(jahr1, monat1, 1);

minusTag = now2.setdate(meinDatum.getdate()-1);

wochentag2 = now2.getDay();

minusWochentag = now2.setDate(now2.getDate()-wochentag2);

Letzter Sonntag vorigen Monats: Seite 10Seite 11

Die Variable /:datum wird hier mit globaler Schreibweise der Filmsequenz Uhr zugewiesen. Die Sekunden Minuten und Stunden müssen den Zeigern als Eigenschaft _rotation zugewiesen werden. Eine Umdrehung sind 360 Grad. Das bedeutet, für Sekunden, diese 360 Grad müssen in einzelne Sekundenschritte aufgeteilt werden. Da eine Minute oder eine Umdrehung 60 Sekunden hat, wird 360 durch 60 geteilt. Das Ergebnis wird mit den Sekunden des Datum Ojekts multipliziert. Genau so gehts für Minuten. Bei den Stunden stellt sich ein Problem, denn der Stundenzeiger soll nicht nur die vollen Stunden anzeigen. Das wäre einfach 360/12*datum.getHours() Er soll sich langsam auf die nächste Stunde zubewegen. Also muß die Rotation noch um die Minuten erhöht werden. Eine Stunde hat 60 Minuten. Deswegen werden die Minuten durch 60 geteilt und zum Stundenwert addiert. Das Ganze in Klammern multipliziert mit 360/12.

onClipEvent (enterFrame) {

   _rotation=360/60*/:datum.getSeconds();

}

onClipEvent (enterFrame) {

   _rotation=360/60*/:datum.getMinutes();

}

onClipEvent (enterFrame) {

   _rotation=360/12*(/:datum.getHours()+/:datum.getMinutes()/60);

}