Datum konvertieren und verarbeiten

M

MacNoob20

Aktives Mitglied
Thread Starter
Dabei seit
30.01.2020
Beiträge
171
Reaktionspunkte
10
Hi!

ich würde gerne einen Text-String, der ein Datum im Format "DD.MM.YY" enthält, in ein Datum umwandeln.

Mein Ansatz:
Code:
set fu to "24.12.19"

set AppleScript's text item delimiters to {"."}

set fuTmp to the current date
set the year of fuTmp to (text item 3 of fu) + 2000
set the month of fuTmp to text item 2 of fu
set the day of fuTmp to text item 1 of fu

set fu to fuTmp

display dialog fu as text

set AppleScript's text item delimiters to ""

set today to current date

if fu ≤ today then
    display dialog "Vorbei!"
else
    display dialog "Kommt noch!"
end if

scheint zu funktionieren. Allerdings hatte ich zuerst die +2000 vergessen und dann seltsamerweise beim displayDialog immer den 26.12.0019 ausgegeben bekommen (also wohl aus dem Römischen Reich ;) )

Liegt der Shift im Tag einfach an kalendarischen Effekten oder ist mein Ansatz buggy?

Danke!
 
das liegt wohl an deiner fu deklaration. das gibst du das jahr ja als 19 an.
der hat ja keinen kontext, sondern macht das stupide zum year.
 
Wow, das war fix, danke!

das liegt wohl an deiner fu deklaration. das gibst du das jahr ja als 19 an.
der hat ja keinen kontext, sondern macht das stupide zum year.

Das kann ich ja noch nachvollziehen, aber warum ändert er auch den Tag vom 24. auf den 26.?

Was mir noch aufgefallen ist:
Kann ich bei der Abfrage
Code:
if fu = today then
    display dialog "Heute!"
else
    display dialog "Nicht heute"
end if
definieren, dass tagesgenau gut genug ist? Er scheint das auf die Sekunde genau zu vergleichen, was mir ein bisschen zu pingelig ist ;)
 
Das kann ich ja noch nachvollziehen, aber warum ändert er auch den Tag vom 24. auf den 26.?

das könnte am unterschiedlichen kalendersystemen liegen.
19 war ja noch der julianische kalender in gebrauch, 1582 kam der gregorianische, den wir heute noch benutzen.

vielleicht solltest du das datum mit einer passenden funktion erstellen, statt es einzeln rein zu schreiben.

https://macscripter.net/viewtopic.php?id=43994
hier gibt es übrigens auch die 2 tage verschiebung, vielleicht haben die eine bessere erklärung.
 
Okay, danke, das muss ich mir in einer ruhigen Minute mal ansehen. Sieht auf den ersten Blick deutlich komplizierter aus
 
ich empfehle date mit unix timestamps. damit kannst du leichter rechnen/vergleichen, unschärfe einbauen (+/-3600 whatever in sekunden) und musst nicht mit den typischen applescript quirks kämpfen.

Code:
date -jf "%d.%m.%y" "24.12.19" "+%s"
1577223203
 
Zurück
Oben Unten