Недели и дни недели Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/rabota-s-datami-i-vremenem/nedeli-i-dni-nedeli.feed 2022-09-13T05:01:39+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Дни недели 2013-09-16T20:35:40+07:00 2013-09-16T20:35:40+07:00 https://delphi-hlp.ru/index.php/rabota-s-datami-i-vremenem/nedeli-i-dni-nedeli/dni-nedeli.html Super User toto44@inbox.ru <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">unit</span><span class="f_CodeExample" style="color: #000000;"> datefunc;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">interface</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> checkdate(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Date2julian(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Julian2date(julian: longint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> DayOfTheWeek(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> idag: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">sysutils;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> idag(): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает текущую дату и возвращает ее в формате YYYYMMDD для использования</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">другими функциями данного молуля.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year, Month, Day: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(Now, Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := IntToStr(year) + IntToStr(Month) + IntToStr(day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Date2julian(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает дату в формате YYYYMMDD.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Если у вас другой формат,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">в первую очередь преобразуйте его.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month, day, year: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ta, tb, tc: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> month &gt; </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := month - </span><span class="f_CodeExample" style="color: #800000;">3</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := month + </span><span class="f_CodeExample" style="color: #800000;">9</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> year := year - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ta := </span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;"> * (year </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">tb := </span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;"> * (year </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">tc := (</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;"> * month + </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> + day + </span><span class="f_CodeExample" style="color: #800000;">1721119</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := ta + tb + tc</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> mdy2date(month, day, year: integer): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y, m, d: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := </span><span class="f_CodeExample" style="color: #ff0000;">'000'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := copy(y, length(y) - </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := </span><span class="f_CodeExample" style="color: #ff0000;">'0'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(month);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := copy(m, length(m) - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := </span><span class="f_CodeExample" style="color: #ff0000;">'0'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := copy(d, length(d) - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := y + m + d;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Julian2date(julian: longint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает значение и возвращает дату в формате YYYYMMDD}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x, y, d, m: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month, day, year: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> * julian - </span><span class="f_CodeExample" style="color: #800000;">6884477</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> * d + </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;">) + y;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> * d - </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> m &lt; </span><span class="f_CodeExample" style="color: #800000;">11</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := m + </span><span class="f_CodeExample" style="color: #800000;">2</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := m - </span><span class="f_CodeExample" style="color: #800000;">10</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := d;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year := y + m </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">11</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := mdy2date(month, day, year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> checkdate(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Дата должна быть в формате YYYYMMDD.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">test: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Сначала преобразовываем строку в юлианский формат даты.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Это позволит получить необходимое значение.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian := Date2julian(date);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Затем преобразовываем полученную величину в дату.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Это всегда будет правильной датой. Для проверки делаем обратное преобразование.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Результат проверки передаем как выходной параметр функции.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">test := Julian2date(julian);</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> date = test </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> result := true</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> result := false;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> DayOfTheWeek(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получаем дату в формате YYYYMMDD</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">и возвращаем день недели.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian := (Date2julian(date)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">case</span><span class="f_CodeExample" style="color: #000000;"> julian </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Понедельник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Вторник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Среда'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Четверг'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Пятница'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Суббота'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Воскресенье'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p>Тем не менее, начиная со второй версии, Delphi содержат в своем арсенале замечательную функцию DayOfWeek, возвращающую целочисленный результат в диапазоне от 1 до 7. Вот пример кода, присланный Андреем Ивановым:</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span><span class="f_CodeExample" style="color: #000000;"> SysUtils;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">...</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> TForm1.DayOfWeekRus(S: TDateTime): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">case</span><span class="f_CodeExample" style="color: #000000;"> DayOfWeek(S) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Воскресенье'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Понедельник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Вторник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Среда'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Четверг'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Пятница'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Суббота'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> </td> </tr> </tbody> </table> </div> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod</p> <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">unit</span><span class="f_CodeExample" style="color: #000000;"> datefunc;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">interface</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> checkdate(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Date2julian(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Julian2date(julian: longint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> DayOfTheWeek(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> idag: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">implementation</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">sysutils;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> idag(): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает текущую дату и возвращает ее в формате YYYYMMDD для использования</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">другими функциями данного молуля.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year, Month, Day: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(Now, Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := IntToStr(year) + IntToStr(Month) + IntToStr(day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Date2julian(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает дату в формате YYYYMMDD.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Если у вас другой формат,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">в первую очередь преобразуйте его.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month, day, year: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ta, tb, tc: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year := strtoint(copy(date, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> month &gt; </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := month - </span><span class="f_CodeExample" style="color: #800000;">3</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := month + </span><span class="f_CodeExample" style="color: #800000;">9</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> year := year - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ta := </span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;"> * (year </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">tb := </span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;"> * (year </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">tc := (</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;"> * month + </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> + day + </span><span class="f_CodeExample" style="color: #800000;">1721119</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := ta + tb + tc</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> mdy2date(month, day, year: integer): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y, m, d: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := </span><span class="f_CodeExample" style="color: #ff0000;">'000'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := copy(y, length(y) - </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := </span><span class="f_CodeExample" style="color: #ff0000;">'0'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(month);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := copy(m, length(m) - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := </span><span class="f_CodeExample" style="color: #ff0000;">'0'</span><span class="f_CodeExample" style="color: #000000;"> + inttostr(day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := copy(d, length(d) - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := y + m + d;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Julian2date(julian: longint): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получает значение и возвращает дату в формате YYYYMMDD}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x, y, d, m: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month, day, year: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> * julian - </span><span class="f_CodeExample" style="color: #800000;">6884477</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">100</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">146097</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> * d + </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">y := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;">) + y;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">1461</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">x := </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> * d - </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">m := x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := (x </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">153</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> m &lt; </span><span class="f_CodeExample" style="color: #800000;">11</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := m + </span><span class="f_CodeExample" style="color: #800000;">2</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> month := m - </span><span class="f_CodeExample" style="color: #800000;">10</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := d;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year := y + m </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">11</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := mdy2date(month, day, year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> checkdate(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Дата должна быть в формате YYYYMMDD.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">test: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Сначала преобразовываем строку в юлианский формат даты.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Это позволит получить необходимое значение.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian := Date2julian(date);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Затем преобразовываем полученную величину в дату.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Это всегда будет правильной датой. Для проверки делаем обратное преобразование.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Результат проверки передаем как выходной параметр функции.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">test := Julian2date(julian);</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> date = test </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> result := true</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">else</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> result := false;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> DayOfTheWeek(date: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Получаем дату в формате YYYYMMDD</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">и возвращаем день недели.}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian: longint;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">julian := (Date2julian(date)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">case</span><span class="f_CodeExample" style="color: #000000;"> julian </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Понедельник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Вторник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Среда'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Четверг'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Пятница'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Суббота'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">: result := </span><span class="f_CodeExample" style="color: #ff0000;">'Воскресенье'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">.</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p>Тем не менее, начиная со второй версии, Delphi содержат в своем арсенале замечательную функцию DayOfWeek, возвращающую целочисленный результат в диапазоне от 1 до 7. Вот пример кода, присланный Андреем Ивановым:</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span><span class="f_CodeExample" style="color: #000000;"> SysUtils;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">...</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> TForm1.DayOfWeekRus(S: TDateTime): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">case</span><span class="f_CodeExample" style="color: #000000;"> DayOfWeek(S) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Воскресенье'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Понедельник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Вторник'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Среда'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Четверг'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Пятница'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">: Result := </span><span class="f_CodeExample" style="color: #ff0000;">'Суббота'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> </td> </tr> </tbody> </table> </div> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod</p> Как определить день недели? 2013-09-16T20:34:42+07:00 2013-09-16T20:34:42+07:00 https://delphi-hlp.ru/index.php/rabota-s-datami-i-vremenem/nedeli-i-dni-nedeli/kak-opredelit-den-nedeli.html Super User toto44@inbox.ru <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d: TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := StrToDate(Edit1.Text);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ShowMessage(FormatDateTime(</span><span class="f_CodeExample" style="color: #ff0000;">'dddd'</span><span class="f_CodeExample" style="color: #000000;">,d));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod</p> <p>DelphiWorld 6.0</p> <p style="text-align: right;"> </p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p> </p> <p class="p_CodeExample">Функции <span class="f_CodeExample" style="color: #000000;">DayOfTheWeek и DayOfWeek (см. справку по Дельфи)</span></p> <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d: TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">d := StrToDate(Edit1.Text);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ShowMessage(FormatDateTime(</span><span class="f_CodeExample" style="color: #ff0000;">'dddd'</span><span class="f_CodeExample" style="color: #000000;">,d));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod</p> <p>DelphiWorld 6.0</p> <p style="text-align: right;"> </p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p> </p> <p class="p_CodeExample">Функции <span class="f_CodeExample" style="color: #000000;">DayOfTheWeek и DayOfWeek (см. справку по Дельфи)</span></p> Как узнать номер недели данного дня в году? 2013-09-16T20:33:23+07:00 2013-09-16T20:33:23+07:00 https://delphi-hlp.ru/index.php/rabota-s-datami-i-vremenem/nedeli-i-dni-nedeli/kak-uznat-nomer-nedeli-dannogo-dnya-v-godu.html Super User toto44@inbox.ru <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 1:</span></p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekOfYear(ADate : TDateTime) : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstOfYear : TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(ADate, year, month, day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstOfYear := EncodeDate(year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := Trunc(ADate - FirstOfYear) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ShowMessage(IntToStr(WeekOfYear(Date)));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 2:</span></p> <p> </p> <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekNum(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> ADate: TDateTime): word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Month: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Day: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(ADate + </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> - DayOfWeek(ADate + </span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">), Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> + trunc((ADate - EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DayOfWeek(EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">))) / </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 3:</span></p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekOfYear(Dat: TDateTime): Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Интерпретация номеров дней:</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// ISO: 1 = Понедельник, 7 = Воскресенье</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Delphi SysUtils: 1 = Воскресенье, 7 = Суббота</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Day,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Month,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstDate: TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DateDiff : Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := SysUtils.DayOfWeek(Dat)-</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Dat := Dat + </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;"> - ((</span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;"> + day) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(Dat, Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstDate := EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DateDiff := Trunc(Dat - FirstDate);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> + (DateDiff </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> </p> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources</span></p> <p style="text-align: right;"> </p> <p style="margin: 7px 0px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Получить</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">номер</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">недели</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">по</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">дате</span></p> <div style="text-align: left; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> FirstWeekDay: Integer = </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ Wochentag, mit dem die Woche beginnt </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> (siehe Delphi-Wochentage) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 2 : Montag (nach DIN 1355) }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> FirstWeekDate: Integer = </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ 1 : Beginnt am ersten Januar </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 4 : Erste-4 Tage-Woche (nach DIN 1355) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 7 : Erste volle Woche }</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ liefert das Datum des ersten Tages der Woche }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ get date of first day of week}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekToDate(AWeek, AYear: Integer): TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := EncodeDate(AYear, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, FirstWeekDate);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := Result + (AWeek - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - ((DayOfWeek(Result) + (</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - FirstWeekDay)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ liefert die Wochennummer und das Jahr, zu dem die Woche gehort }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ get weeknumber and year of the given week number}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> DateToWeek(ADate: TDateTime; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> AWeek, AYear: Word);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Month, Day: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ADate := ADate - ((DayOfWeek(ADate) - FirstWeekDay + </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) + </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - FirstWeekDate;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DecodeDate(ADate, AYear, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> AWeek := (Trunc(ADate - EncodeDate(AYear, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Week to date example}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(FormatDateTime(</span><span class="f_CodeExample" style="color: #ff0000;">'dd.mm.yyyy'</span><span class="f_CodeExample" style="color: #000000;">, WeekToDate(</span><span class="f_CodeExample" style="color: #800000;">51</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2000</span><span class="f_CodeExample" style="color: #000000;">)));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Date to week example}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button2Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> week, year: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DateToWeek(now, week, year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(week));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(year));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято с сайта: </span><span style="font-family: 'Times New Roman'; color: #0000ff; text-decoration: underline;">https://www.swissdelphicenter</span></p> <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 1:</span></p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekOfYear(ADate : TDateTime) : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">month : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">year : word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstOfYear : TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(ADate, year, month, day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstOfYear := EncodeDate(year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := Trunc(ADate - FirstOfYear) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">ShowMessage(IntToStr(WeekOfYear(Date)));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 2:</span></p> <p> </p> <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekNum(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> ADate: TDateTime): word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Month: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Day: word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(ADate + </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;"> - DayOfWeek(ADate + </span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">), Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> + trunc((ADate - EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">5</span><span class="f_CodeExample" style="color: #000000;">) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DayOfWeek(EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;">))) / </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <hr size="1" noshade="noshade" style="color: #000000;" /> <p><span style="font-family: 'Times New Roman'; color: #000000;">Вариант 3:</span></p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekOfYear(Dat: TDateTime): Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Интерпретация номеров дней:</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// ISO: 1 = Понедельник, 7 = Воскресенье</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Delphi SysUtils: 1 = Воскресенье, 7 = Суббота</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Day,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Month,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Year: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstDate: TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DateDiff : Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">day := SysUtils.DayOfWeek(Dat)-</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Dat := Dat + </span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #000000;"> - ((</span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;"> + day) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DecodeDate(Dat, Year, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">FirstDate := EncodeDate(Year, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">DateDiff := Trunc(Dat - FirstDate);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> + (DateDiff </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> </p> <p> </p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources</span></p> <p style="text-align: right;"> </p> <p style="margin: 7px 0px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Получить</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">номер</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">недели</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">по</span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">дате</span></p> <div style="text-align: left; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> FirstWeekDay: Integer = </span><span class="f_CodeExample" style="color: #800000;">2</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ Wochentag, mit dem die Woche beginnt </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> (siehe Delphi-Wochentage) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 2 : Montag (nach DIN 1355) }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> FirstWeekDate: Integer = </span><span class="f_CodeExample" style="color: #800000;">4</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ 1 : Beginnt am ersten Januar </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 4 : Erste-4 Tage-Woche (nach DIN 1355) </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;"> 7 : Erste volle Woche }</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ liefert das Datum des ersten Tages der Woche }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ get date of first day of week}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> WeekToDate(AWeek, AYear: Integer): TDateTime;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := EncodeDate(AYear, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, FirstWeekDate);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := Result + (AWeek - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - ((DayOfWeek(Result) + (</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - FirstWeekDay)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ liefert die Wochennummer und das Jahr, zu dem die Woche gehort }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ get weeknumber and year of the given week number}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> DateToWeek(ADate: TDateTime; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span><span class="f_CodeExample" style="color: #000000;"> AWeek, AYear: Word);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Month, Day: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ADate := ADate - ((DayOfWeek(ADate) - FirstWeekDay + </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">mod</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) + </span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;"> - FirstWeekDate;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DecodeDate(ADate, AYear, Month, Day);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> AWeek := (Trunc(ADate - EncodeDate(AYear, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">)) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">7</span><span class="f_CodeExample" style="color: #000000;">) + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Week to date example}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(FormatDateTime(</span><span class="f_CodeExample" style="color: #ff0000;">'dd.mm.yyyy'</span><span class="f_CodeExample" style="color: #000000;">, WeekToDate(</span><span class="f_CodeExample" style="color: #800000;">51</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">2000</span><span class="f_CodeExample" style="color: #000000;">)));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{Date to week example}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button2Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> week, year: Word;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> DateToWeek(now, week, year);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(week));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(year));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято с сайта: </span><span style="font-family: 'Times New Roman'; color: #0000ff; text-decoration: underline;">https://www.swissdelphicenter</span></p>