<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://docs.kb-agava.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime</id>
	<title>Класс datetime - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://docs.kb-agava.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime"/>
	<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime&amp;action=history"/>
	<updated>2026-04-28T13:28:01Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime&amp;diff=3503&amp;oldid=prev</id>
		<title>TaushkanovKV в 06:37, 27 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime&amp;diff=3503&amp;oldid=prev"/>
		<updated>2026-04-27T06:37:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 06:37, 27 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l205&quot; &gt;Строка 205:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 205:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  print(&amp;quot;Интервал: &amp;quot; + days + &amp;quot; дней, &amp;quot; + hours + &amp;quot; часов, &amp;quot; + minutes + &amp;quot; минут, &amp;quot; + seconds + &amp;quot; секунд&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  print(&amp;quot;Интервал: &amp;quot; + days + &amp;quot; дней, &amp;quot; + hours + &amp;quot; часов, &amp;quot; + minutes + &amp;quot; минут, &amp;quot; + seconds + &amp;quot; секунд&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:AgavaSCADA/AgavaPLC]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_mw:diff::1.12:old-3501:rev-3503 --&gt;
&lt;/table&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime&amp;diff=3501&amp;oldid=prev</id>
		<title>TaushkanovKV: Новая страница: «Класс доступен начиная с версии &lt;code&gt;AS 1.6+&lt;/code&gt;. ==Конструкторы== ===Конструктор по умолчанию===...»</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_datetime&amp;diff=3501&amp;oldid=prev"/>
		<updated>2026-04-27T06:37:04Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Класс доступен начиная с версии &amp;lt;code&amp;gt;AS 1.6+&amp;lt;/code&amp;gt;. ==Конструкторы== ===Конструктор по умолчанию===...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Класс доступен начиная с версии &amp;lt;code&amp;gt;AS 1.6+&amp;lt;/code&amp;gt;.&lt;br /&gt;
==Конструкторы==&lt;br /&gt;
===Конструктор по умолчанию===&lt;br /&gt;
 datetime dt();&lt;br /&gt;
Создает объект с текущей датой и временем.&lt;br /&gt;
===Конструктор копирования===&lt;br /&gt;
 datetime dt(other);&lt;br /&gt;
Создает копию существующего объекта datetime.&lt;br /&gt;
===Конструктор с параметрами===&lt;br /&gt;
 datetime dt(year, month, day, hour = 0, minute = 0, second = 0);&lt;br /&gt;
Создает объект с указанной датой и временем. &lt;br /&gt;
&lt;br /&gt;
=== Пример ===&lt;br /&gt;
 // Только дата&lt;br /&gt;
 datetime newYear = datetime(2024, 1, 1);&lt;br /&gt;
 &lt;br /&gt;
 // Дата и время&lt;br /&gt;
 datetime meeting = datetime(2024, 12, 25, 14, 30, 0);&lt;br /&gt;
 &lt;br /&gt;
 // Полная спецификация&lt;br /&gt;
 datetime exact = datetime(2024, 6, 15, 9, 45, 30);&lt;br /&gt;
==Методы==&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_year() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает год (4 цифры).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_month() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает месяц (1-12).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_day() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает день месяца (1-31).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_hour() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает часы (0-23).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_minute() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает минуты (0-59).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint get_second() const&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возвращает секунды (0-59).&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
 datetime dt = datetime(2024, 12, 25, 14, 30, 45);&lt;br /&gt;
 &lt;br /&gt;
 uint year = dt.year;    // 2024&lt;br /&gt;
 uint month = dt.month;  // 12&lt;br /&gt;
 uint day = dt.day;      // 25&lt;br /&gt;
 uint hour = dt.hour;    // 14&lt;br /&gt;
 uint minute = dt.minute; // 30&lt;br /&gt;
 uint second = dt.second; // 45&lt;br /&gt;
&amp;lt;code&amp;gt;bool setDate(year, month, day)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливает дату. Возвращает &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; при успехе, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; при неверной дате.&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
 datetime dt;&lt;br /&gt;
 bool success = dt.setDate(2024, 2, 29); // true (високосный год)&lt;br /&gt;
 bool invalid = dt.setDate(2023, 2, 29); // false (не високосный)&lt;br /&gt;
&amp;lt;code&amp;gt;bool setTime(hour, minute, second)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливает время. Возвращает &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; при успехе, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; при неверном времени.&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
&lt;br /&gt;
cpp&lt;br /&gt;
 datetime dt;&lt;br /&gt;
 bool success = dt.setTime(23, 59, 59); // true&lt;br /&gt;
 bool invalid = dt.setTime(25, 0, 0);   // false (часы &amp;gt; 23)&lt;br /&gt;
==Арифметические операции==&lt;br /&gt;
Вычитание дат&lt;br /&gt;
 int64 difference = dt1 - dt2;&lt;br /&gt;
Возвращает разницу в секундах.&lt;br /&gt;
 datetime start = datetime(2024, 1, 1, 0, 0, 0);&lt;br /&gt;
 datetime end = datetime(2024, 1, 2, 0, 0, 0);&lt;br /&gt;
 int64 diff = end - start; // 86400 секунд (1 день)&lt;br /&gt;
Сложение с секундами&lt;br /&gt;
 datetime result = dt + seconds;&lt;br /&gt;
 datetime result = seconds + dt; // обратный порядок&lt;br /&gt;
 dt += seconds;&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
 datetime dt = datetime(2024, 1, 1, 10, 0, 0);&lt;br /&gt;
 &lt;br /&gt;
 // Добавить 2 часа&lt;br /&gt;
 datetime later = dt + 7200;&lt;br /&gt;
 dt += 7200;&lt;br /&gt;
 &lt;br /&gt;
 // Обратный порядок&lt;br /&gt;
 datetime same = 7200 + dt;&lt;br /&gt;
Вычитание секунд&lt;br /&gt;
 datetime result = dt - seconds;&lt;br /&gt;
 datetime result = seconds - dt; // обратный порядок&lt;br /&gt;
 dt -= seconds;&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
 datetime dt = datetime(2024, 1, 1, 10, 0, 0);&lt;br /&gt;
 &lt;br /&gt;
 // Вычесть 30 минут&lt;br /&gt;
 datetime earlier = dt - 1800;&lt;br /&gt;
 dt -= 1800;&lt;br /&gt;
===Операции сравнения===&lt;br /&gt;
&amp;lt;code&amp;gt;bool opEquals(other)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверка равенства дат.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool opLess(other)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверка что дата раньше.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int opCmp(other)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сравнение с возвратом -1 (меньше), 0 (равно), 1 (больше).&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
 datetime dt1 = datetime(2024, 1, 1);&lt;br /&gt;
 datetime dt2 = datetime(2024, 1, 2);&lt;br /&gt;
 &lt;br /&gt;
 if (dt1 &amp;lt; dt2) {&lt;br /&gt;
     // dt1 раньше dt2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if (dt1 == dt2) {&lt;br /&gt;
     // даты равны&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int result = dt1.opCmp(dt2); // -1&lt;br /&gt;
==Практические примеры==&lt;br /&gt;
Пример 1: Таймер выполнения&lt;br /&gt;
 datetime startTime;&lt;br /&gt;
 &lt;br /&gt;
 // Выполняем некоторую операцию&lt;br /&gt;
 for (int i = 0; i &amp;lt; 1000000; i++) &lt;br /&gt;
 {&lt;br /&gt;
     // какая-то работа&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 datetime endTime;&lt;br /&gt;
 int64 elapsed = endTime - startTime;&lt;br /&gt;
 print(&amp;quot;Операция заняла: &amp;quot; + elapsed + &amp;quot; секунд&amp;quot;);&lt;br /&gt;
Пример 2: Расчет дат событий&lt;br /&gt;
 // Дата начала проекта&lt;br /&gt;
 datetime projectStart = datetime(2024, 1, 15);&lt;br /&gt;
 &lt;br /&gt;
 // Напоминание за 3 дня до дедлайна&lt;br /&gt;
 datetime deadline = datetime(2024, 3, 1);&lt;br /&gt;
 datetime reminder = deadline - 3 * 86400; // 3 дня в секундах&lt;br /&gt;
 &lt;br /&gt;
 // Продление срока на 2 недели&lt;br /&gt;
 datetime extendedDeadline = deadline + 14 * 86400;&lt;br /&gt;
Пример 3: Проверка рабочего времени&lt;br /&gt;
 datetime currentTime;&lt;br /&gt;
 &lt;br /&gt;
 // Создаем время начала и конца рабочего дня&lt;br /&gt;
 datetime workStart = datetime(currentTime.year, currentTime.month, &lt;br /&gt;
                              currentTime.day, 9, 0, 0);&lt;br /&gt;
 datetime workEnd = workStart + 8 * 3600; // 8 часов&lt;br /&gt;
 &lt;br /&gt;
 if (currentTime &amp;gt;= workStart &amp;amp;&amp;amp; currentTime &amp;lt;= workEnd) &lt;br /&gt;
 {&lt;br /&gt;
     print(&amp;quot;Рабочее время&amp;quot;);&lt;br /&gt;
 } &lt;br /&gt;
 else &lt;br /&gt;
 {&lt;br /&gt;
     print(&amp;quot;Вне рабочего времени&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
Пример 4: Валидация даты&lt;br /&gt;
 bool createAppointment(uint year, uint month, uint day, uint hour) &lt;br /&gt;
 {&lt;br /&gt;
     datetime appointment;&lt;br /&gt;
     &lt;br /&gt;
     // Проверяем корректность даты&lt;br /&gt;
     if (!appointment.setDate(year, month, day)) {&lt;br /&gt;
         print(&amp;quot;Неверная дата!&amp;quot;);&lt;br /&gt;
         return false;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Проверяем корректность времени&lt;br /&gt;
     if (!appointment.setTime(hour, 0, 0)) {&lt;br /&gt;
         print(&amp;quot;Неверное время!&amp;quot;);&lt;br /&gt;
         return false;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Проверяем что дата не в прошлом&lt;br /&gt;
     datetime now;&lt;br /&gt;
     if (appointment &amp;lt; now) {&lt;br /&gt;
         print(&amp;quot;Дата не может быть в прошлом!&amp;quot;);&lt;br /&gt;
         return false;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     print(&amp;quot;Встреча создана: &amp;quot; + appointment.year + &amp;quot;-&amp;quot; + appointment.month + &amp;quot;-&amp;quot; + appointment.day);&lt;br /&gt;
     return true;&lt;br /&gt;
 }&lt;br /&gt;
Пример 5: Разбивка интервала времени&lt;br /&gt;
 datetime start = datetime(2024, 1, 1, 0, 0, 0);&lt;br /&gt;
 datetime end = start + 365 * 86400; // +1 год&lt;br /&gt;
 &lt;br /&gt;
 int64 totalSeconds = end - start;&lt;br /&gt;
 int64 days = totalSeconds / 86400;&lt;br /&gt;
 int64 hours = (totalSeconds % 86400) / 3600;&lt;br /&gt;
 int64 minutes = (totalSeconds % 3600) / 60;&lt;br /&gt;
 int64 seconds = totalSeconds % 60;&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Интервал: &amp;quot; + days + &amp;quot; дней, &amp;quot; + hours + &amp;quot; часов, &amp;quot; + minutes + &amp;quot; минут, &amp;quot; + seconds + &amp;quot; секунд&amp;quot;);&lt;/div&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
</feed>