AppleScript: Wie kann ich den Monat als Zahl darstellen?

AppleScript Editor

Diese Frage stellen sich viele AppleScripter(innen). Wie kann ich den Monat aus dem aktuellen, oder berechneten, Datum als Zahl ausgeben? Und gegebenenfalls auch noch so formatieren, dass diese Zahl sauber in Spalten dargestellt werden kann? Wie immer gibt es mehr als eine Möglichkeit dies in AppleScript durchzuführen, hier ist eine davon.

Der Befehl mit dem wir uns das aktuelle Datum (und Uhrzeit) in AppleScript holen können ist bekannt:

set myDate to current date

Wenn wir uns allerdings ansehen, was die Variable ‘myDate’ jetzt enthält, dann bekommen wir etwas in dieser Richtung zu sehen:

date "Dienstag, 4. März 2014 17:47:40"

Wichtig ist hierbei allerdings die Tatsache, dass als Resultattyp date angezeigt wird. Es handelt sich hierbei also nicht um einen String, sondern um ein Datumsobjekt. Dieses können wir nach Inhalten “fragen”. Zum Beispiel:

set myDay to day of myDate

Worauf wir im gezeigten Fall als Antwort 4 zurückbekommen.

Wenn wir jetzt allerdings nach dem Monat “fragen”:

set myMonth to month of myDate

Bekommen wir als Antwort March (beziehungsweise ich bekomme diese Antwort, da mein System auf Englisch läuft). Nicht die Antwort die wir gesucht hatten, wir wollten ja den Monat als numerische Angabe.

Wie immer bei AppleScript ist das eine Frage (sorry, den konnte ich mir nicht verkneifen) der Fragestellung. Fragen wir doch einfach einmal anders:

set myMonthNumber to (month of myDate as integer)

Und schon bekommen wir als Resultat im gezeigten Fall 3 zurück. Wie gesagt, eine Frage der Formulierung.

Übrigens, wie in der Einleitung erwähnt, wenn das Ganze auch in einer Spaltendarstellung lesbar aussehen soll, dann könnten wir uns den Monat auch so holen:

do shell script "date +%m"

Dann bekommen wir als Antwort im gezeigten Fall 03. Dies ist allerdings ein String, wir können diese Rückgabe also nicht in Rechenoperationen verwenden.

(Ich weiss, dass AppleScript trotzdem versuchen würde mit diesem String zu rechnen, aber von dieser Art der Programmierung kann ich nur abraten. Diese Warnung ist wirklich ernst gemeint.)

Zu gegebener Zeit werde ich eine ausführlichere Beschreibung posten, was wir mit dem Shell-Befehl date noch alles in AppleScript anstellen können.

Viel Spass beim Skripten. 😉

Nächster AppleScript-Kurs:

10.11. - 11.11.2014 München

Info und Anmeldung

Speak Your Mind

*