Wyznaczenie najbliższego dnia roboczego.

Gotowe szablony, skrypty, makropolecenia i rozszerzenia. Tutaj możesz pochwalić i podzielić się swoją twórczością z innymi użytkownikami
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Wyznaczenie najbliższego dnia roboczego.

Post autor: Jermor »

UWAGA
[15.11.2024] Po dwóch latach od napisania tego postu przeglądając go i analizując ponownie makro, zdałem sobie sprawę, że w pewnych sytuacjach algorytm nie wyznaczy właściwego dnia roboczego. Błędnie wyznaczony dzień roboczy mógł się pojawić tylko wtedy, gdy data bezwzględnie końcowa wypadała w sobotę lub niedzielę, a po niedzieli wypadał dzień świąteczny. Poprawiłem algorytm i ponownie wstawiam plik nowadata.ods z poprawionym makrem.
Napisałem funkcję użytkownika, która wyznacza najbliższy, następny dzień roboczy w stosunku do podanej daty.
Funkcja może przydać się tym, którzy chcą wyznaczyć przyszłą datę i chcą, aby wypadła ona w dzień roboczy.
Funkcja nazywa się NOWADATA(data, opcja) i ma dwa argumenty. "Data" względem której ma zostać wyznaczony taki dzień. Dniami roboczymi są dni od poniedziałku do piątku. Wyznaczanie dnia roboczego uwzględnia także dni świąt obowiązujących w Polsce. Argument "opcja" decyduje o tym, czy do dni świąt zaliczyć także Wigilię Bożego Narodzenia. Zwyczajowo przyjęło się nie wyznaczać tego dnia jako terminu. Pominięcie tego argumentu lub wartość 1 oznacza, że wigilia ma być traktowana tak jak święto. Wartość 0 oznacza, że wigilia jest normalnym dniem roboczym.
Funkcję i przykład jej zastosowania załączam w pliku.
Załączniki
nowadata.ods
Poprawiłem makro [15.11.2024]
(30.9 KiB) Pobrany 8 razy
Ostatnio zmieniony pt lis 15, 2024 11:42 pm przez Jermor, łącznie zmieniany 1 raz.
Powód: Odkryłem błąd w działaniu makra i je poprawiłem.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ