Вычисление немецких праздниковDelphi , Синтаксис , Дата и ВремяВычисление немецких праздников
Оформил: DeeCo unit Feiertage; // Unit Holidays; interface uses Windows, SysUtils; // Declare a structure to hold the Information // Deklarieren der Struktur, um die Feiertage abzuspeichern type THoliday = record Date: TDateTime; Name: string; end; THolidayTable = array of THoliday; // Function to call to get the Holiday Table with all Holidays of a year // Der Funktionsaufruf, um die Feiertage eines Jahres abzufragen function GetHolidayTable(Year: Word): THolidayTable; implementation function TUrlaubsForm.GetHolidayTable(Year: Word): THolidayTable; // Function to add a holiday by Day and Month // Funktion, um einen Feiertag uber seinen Tag\Monat hinzuzufugen procedure AddHoliday(DD, MM: Word; HDName: string); overload; begin SetLength(Result, High(Result) + 2); with Result[High(Result)] do begin Date := EncodeDate(Year, MM, DD); Name := HDName; end; end; //Function to add holiday by date serial //Funktion, um den Feiertag uber die Datumsseriennummer hinzuzufugen procedure AddHoliday(HDDate: TDateTime; HDName: string); overload; begin SetLength(Result, High(Result) + 2); with Result[High(Result)] do begin Date := HDDate; Name := HDName; end; end; // Function to get easter sunday // Function zur Berechnung des Ostersonntags function GetEasterDate(YYYY: Word): TDateTime; var A, B, C, D, E, F, G, H, I, K, L, M, N, P: Word; DD, MM: Word; begin a := YYYY mod 19; b := YYYY div 100; c := YYYY mod 100; d := b div 4; e := b mod 4; f := (b + 8) div 25; g := (b - f + 1) div 3; h := (19 * a + b - d - g + 15) mod 30; i := c div 4; k := c mod 4; l := (32 + 2 * e + 2 * i - h - k) mod 7; m := (a + 11 * h + 22 * l) div 451; n := (h + l - 7 * m + 114) div 31; p := (h + l - 7 * m + 114) mod 31 + 1; DD := p; MM := n; Result := EncodeDate(YYYY, MM, DD); end; var EDate: TDateTime; begin // Add fixed holidays // Hinzufugen der festen Feiertage AddHoliday(1, 1, 'Neujahr'); AddHoliday(1, 5, 'Tag der Arbeit'); AddHoliday(3, 10, 'Tag der deutschen Einheit'); AddHoliday(31, 10, 'Reformationstag'); // AddHoliday(24, 12, 'Heiligabend'); AddHoliday(25, 12, '1. Weihnachtsfeiertag'); AddHoliday(26, 12, '2. Weihnachtsfeiertag'); // AddHoliday(31, 12, 'Silvester'); // Add holidays relative to easter sunday // Hinzufugen der Feiertage, die von Ostern abhangen EDate := GetEasterDate(Year); AddHoliday(EDate, 'Ostersonntag'); AddHoliday(EDate - 2, 'Karfreitag'); AddHoliday(EDate + 1, 'Ostermontag'); AddHoliday(EDate + 39, 'Christi Himmelfahrt'); AddHoliday(EDate + 49, 'Pfingstsonntag'); AddHoliday(EDate + 50, 'Pfingstmontag'); // Gets 3rd Wednesday in November // Ermittelt den 3. Mitwoch im November EDate := EncodeDate(Year, 11, 1); EDate := EDate + ((11 - DayOfWeek(EDate)) mod 7) + 14; AddHoliday(EDate, 'Bu?- und Bettag'); end; end. // This Units works since the year 1584 // Diese Unit arbeitet mit Jahreszahlen nach 1584 Единица Delphi для расчета немецких праздников! Эта единица предоставляет функцию Вот разбивка кода:
Эта единица предназначена для работы с годами, начиная с 1584 года, что объясняет почему она не учитывает реформы календаря Григория до этого года. В целом, эта единица предоставляет полезный инструмент для расчета немецких праздников и может быть легко интегрирована в приложения Delphi. В статье описывается создание программного обеспечения на языке Delphi для вычисления немецких праздников, включая фиксированные даты и праздники, связанные с Пасхой. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Дата и Время ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |