PowerShell: Datum als "serial number" (analog Excel)
- Ersteller tomm1984
- Erstellt am
- Registriert
- Juni 2018
- Beiträge
- 7.513
E: ach ne, das ist falsch herum...
Zuletzt bearbeitet:
(E: ach ne, das ist falsch herum...)
Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
Code:
PS C:\> (get-date)
Dienstag, 21. Februar 2023 10:34:59
PS C:\> (get-date).tooadate()
44978,4410009028
PS C:\>
Ergänzung ()
@kartoffelpü , ich verfluche dich, weil du eine halbe Sekunde schneller warst!!!!
- Registriert
- Juni 2018
- Beiträge
- 7.513
Aber ich habe es in die falsche Richtung, du hast es ja nun richtig 

cool, danke. dann schneide ich hier noch die stunden und minuten ab und dann habe ich es.Raijin schrieb:Code:PS C:\> (get-date) Dienstag, 21. Februar 2023 10:34:59 PS C:\> (get-date).tooadate() 44978,4410009028 PS C:\>
Ergänzung ()
@kartoffelpü , ich verfluche dich, weil du eine halbe Sekunde schneller warst!!!!
Hintergrund: das script möge jeden zweiten Tag laufen, aber an geraden Tagen Aktion X, an ungeraden Tagen Aktion Y ausführen

Dankeschön
Ergänzung ()
Ergebnis:
Code:
[int](get-date).tooadate() % 2 -eq 0
morcego
Lt. Commander
- Registriert
- Aug. 2008
- Beiträge
- 1.967
Auch wenn die gezeigte Lösung das tut was du vorhast, ist sie eher willkürlich. Jetzt ist es vom 1.1.1900 ausgehend aber wenn man Unix Zeitstempel oder den Tag des Monats oder des Jahres aus dem Datum zieht ist die Definition nicht mehr so eindeutig was gerade und ungerade ist.tomm1984 schrieb:Hintergrund: das script möge jeden zweiten Tag laufen, aber an geraden Tagen Aktion X, an ungeraden Tagen Aktion Y ausführen
Dankeschön
Ergänzung ()
Ergebnis:
Code:[int](get-date).tooadate() % 2 -eq 0
Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
Ich auch nicht wirklich. Klar, wenn man den Kontext ändert, kann sich auch das Ergebnis ändern bzw es wird gegebenenfalls eine andere Lösung benötigt. Danach wurde aber nicht gefragt?
So wie ich es verstanden habe sollen ganz allgemein täglich alternierend zwei Aufgaben erledigt werden und die Formulierung "gerade" bzw "ungerade" bezieht sich schlicht und ergreifend auf die Modulo-Operation, die die jeweilige Aktion auslöst. Ob das Datum nun vom 1.1.1900 an gezählt wird oder man den eigenen Geburtstag als Referenz verwendet, spielt keine Rolle - falls nötig dreht man die Modulo-Logik entsprechend um.
So wie ich es verstanden habe sollen ganz allgemein täglich alternierend zwei Aufgaben erledigt werden und die Formulierung "gerade" bzw "ungerade" bezieht sich schlicht und ergreifend auf die Modulo-Operation, die die jeweilige Aktion auslöst. Ob das Datum nun vom 1.1.1900 an gezählt wird oder man den eigenen Geburtstag als Referenz verwendet, spielt keine Rolle - falls nötig dreht man die Modulo-Logik entsprechend um.
morcego
Lt. Commander
- Registriert
- Aug. 2008
- Beiträge
- 1.967
Ich hab keinen anderen Vorschlag zur Lösung, deshalb sagte ich ja: "Auch wenn die gezeigte Lösung das tut was du vorhast".
Mir ging es lediglich darum, dass die Definition
"Hintergrund: das script möge jeden zweiten Tag laufen, aber an geraden Tagen Aktion X, an ungeraden Tagen Aktion Y ausführen "
nicht nur diese gezeigte Lösung zulässt. Akademische Ungenauigkeit im Lastenheft, würde man womöglich sagen. Passiert doch regelmäßig hier und im Forum/im Job, dass etwas nicht klar/sauber definiert wird zu Beginn.
Eigentlich, wenn man den Hintergrund genau nimmt, stimmt die Lösung nichtmal.
Das Script soll jeden zweiten Tag laufen. Mit der Excel Methode also zB an den Tagen 44978, 44980, 44982, ...
dann trifft niemals zu, dass es an ungeraden Tagen etwas anderes tut. Es wird ja ohnehin nur an geraden Tagen ausgeführt. Oder ungeraden, wenn das "jeder zweite Tag" ist.
Schlichtweg würde sowas wie (Get-Date).Day die Anforderung genauso erfüllen, oder (Get-Date).DayOfYear
Nochmal, mir ging es lediglich um die Ungenauigkeit in der formulierten Anforderung nachdem dieser Hintergrund zusätzlich definiert wurde. Wenn das jetzt tut was es soll, OK, so machen.
Mir ging es lediglich darum, dass die Definition
"Hintergrund: das script möge jeden zweiten Tag laufen, aber an geraden Tagen Aktion X, an ungeraden Tagen Aktion Y ausführen "
nicht nur diese gezeigte Lösung zulässt. Akademische Ungenauigkeit im Lastenheft, würde man womöglich sagen. Passiert doch regelmäßig hier und im Forum/im Job, dass etwas nicht klar/sauber definiert wird zu Beginn.
Eigentlich, wenn man den Hintergrund genau nimmt, stimmt die Lösung nichtmal.
Das Script soll jeden zweiten Tag laufen. Mit der Excel Methode also zB an den Tagen 44978, 44980, 44982, ...
dann trifft niemals zu, dass es an ungeraden Tagen etwas anderes tut. Es wird ja ohnehin nur an geraden Tagen ausgeführt. Oder ungeraden, wenn das "jeder zweite Tag" ist.
Schlichtweg würde sowas wie (Get-Date).Day die Anforderung genauso erfüllen, oder (Get-Date).DayOfYear
Nochmal, mir ging es lediglich um die Ungenauigkeit in der formulierten Anforderung nachdem dieser Hintergrund zusätzlich definiert wurde. Wenn das jetzt tut was es soll, OK, so machen.

Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
Das stimmt schon, aber ich gehe eher davon aus, dass @tomm1984 sich da vertippt hat. Klar, wenn das Skript nur jeden zweiten Tag läuft, läuft es entweder immer an geraden Tagen oder immer an ungeraden Tagen. Stattdessen muss das Skript natürlich täglich laufen, um jeden Tag eben die gerade oder ungerade Aktion zu starten.morcego schrieb:Das Script soll jeden zweiten Tag laufen. Mit der Excel Methode also zB an den Tagen 44978, 44980, 44982, ...
dann trifft niemals zu
Ohne vollständiges Skript (ggfs vereinfacht) ist das große Ganze natürlich entsprechend schwierig zu beurteilen, aber ich entnehme @tomm1984 Antworten, dass es für ihn so funktioniert. Ansonsten brauchen wir mehr Details.
Ähnliche Themen
- Antworten
- 2
- Aufrufe
- 4.435
- Antworten
- 2
- Aufrufe
- 6.656