Перейти к содержанию

Дата и время: различия между версиями

Материал из Химсофт Вики
Новая страница: «Одно и то же значение даты, полученное из SQL-запроса, в дизайнере может быть представлено в различных форматах. Для этого используется выражение <code>=Format(Fields!input.Value, <Шаблон форматирования>)</code>, которое форматирует значение даты из поля <code>Fields!input.Value</code>...»
 
 
(не показано 25 промежуточных версий этого же участника)
Строка 1: Строка 1:
Одно и то же значение даты, полученное из SQL-запроса, в дизайнере может быть представлено в различных форматах.
==Установка конкретной даты==
Для установки конкретной даты можно использовать:
*конструкторы структуры <code>DateTime</code>;
:<syntaxhighlight lang="csharp">
new DateTime(год, месяц, день, часы, минуты, секунды);
</syntaxhighlight>
*функцию <code>ToDateTime</code> (подробнее в разделе [[Конвертирование]]);
*функцию <code>DateSerial</code> (рассматривается ниже).


Для этого используется выражение <code>=Format(Fields!input.Value, <Шаблон форматирования>)</code>, которое форматирует значение даты из поля <code>Fields!input.Value</code> по следующим правилам форматирования (указываются в кавычках вместо <code>Шаблон форматирования</code>):
==Информация о времени==
*<code>«dddd, d MMMM, yyyy»</code> = четверг, 18 декабрь, 2025
*при использовании функций для преобразования даты из данного раздела по умолчанию сохраняется и информация о времени;
*<code>«dd.MM.yyyy»</code> = 18.12.2025
*для удаления времени из даты можно воспользоваться функциями <code>Format</code> или <code>FormatDateTime</code> (более подробная информация об этих функциях представлена в разделе [[Форматирование]]).
*<code>«d»</code> или <code>«dd»</code> = день месяца в числовом формате (например, «18»)
 
*<code>«ddd»</code> = день недели в коротком строковом формате (например, «чт» для четверга)
<div style="background-color: #e7f3ff; border-left: 5px solid #2196f3; padding: 15px; margin: 10px 0;">
*<code>«dddd»</code> = день недели в полном строковом формате (например, «четверг»)
'''Примечание'''
*<code>«MM»</code> = месяц в числовом формате (например, «12»)
 
*<code>«MMM»</code> = месяц в коротком строковом формате (например, «дек.»)
В качестве примера использования поля из базы данных в функциях будет использоваться условное поле <code>[Employees.BirthDate]</code>:
*<code>«MMMM»</code> = месяц в коротком строковом формате (например, «декабрь»)
<syntaxhighlight lang="text">
*<code>«y»</code> или <code>«yy»</code> = год в двузначном формате (например, «25» для 2025)
[Employees.BirthDate] = 27.01.1986
*<code>«yyyy»</code> = год в четырехзначном формате (например, «2025»)
</syntaxhighlight>
*<code>«hh:mm»</code> = время в 12-часовом формате (например, «01:00» для 13:00)
</div>
*<code>«HH:mm»</code> = время в 24-часовом формате (например, «13:00» для 13:00)
 
*<code>«hh»</code> = часы в 12-часовом формате
== AddDays ==
*<code>«HH»</code> = часы в 24-часовом формате
{|class="wikitable" style="background-color: #fff;"
*<code>«mm»</code> = минуты
|-
*<code>«ss»</code> = секунды
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddDays</code> || <code>DateTime date, double value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество дней <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddDays(new DateTime(2024,4,2), 2) = 04.04.2024 0:00:00
AddDays(ToDateTime("2.4.2024"), 2) = 04.04.2024 0:00:00
AddDays([Employees.BirthDate], 2) = 29.01.1986 0:00:00
</syntaxhighlight>
 
== AddHours ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddHours</code> || <code>DateTime date, double value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество часов <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddHours(new DateTime(2024,4,2,5,30,5), 1) = 02.04.2024 6:30:05
AddHours(ToDateTime("2.4.2024 5:30:05"), 1) = 02.04.2024 6:30:05
AddHours([Employees.BirthDate], 1) = 27.01.1986 1:00:00
</syntaxhighlight>
 
== AddMinutes ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddMinutes</code> || <code>DateTime date, double value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество минут <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddMinutes(new DateTime(2024,4,2,5,30,5), 10) = 02.04.2024 5:40:05
AddMinutes(ToDateTime("2.4.2024 5:30:05"), 10) = 02.04.2024 5:40:05
AddMinutes([Employees.BirthDate], 10) = 27.01.1986 0:10:00
</syntaxhighlight>
 
== AddMonths ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddMonths</code> || <code>DateTime date, int value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество месяцев <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddMonths(new DateTime(2024,4,2,5,30,5), 2) = 02.06.2024 5:30:05
AddMonths(ToDateTime("2.4.2024 5:30:05"), 2) = 02.06.2024 5:30:05
AddMonths([Employees.BirthDate], 2) = 27.03.1986 0:00:00
</syntaxhighlight>
 
== AddSeconds ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddSeconds</code> || <code>DateTime date, double value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество секунд <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddSeconds(new DateTime(2024,4,2,5,30,5), 10) = 02.04.2024 5:30:15
AddSeconds(ToDateTime("2.4.2024 5:30:05"), 10) = 02.04.2024 5:30:15
AddSeconds([Employees.BirthDate], 10) = 27.01.1986 0:00:10
</syntaxhighlight>
 
== AddYears ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>AddYears</code> || <code>DateTime date, int value</code> || <code>DateTime</code>
|}
 
Добавляет к дате <code>date</code> количество лет <code>value</code> и возвращает новую дату.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
AddYears(new DateTime(2024,4,2,5,30,5), 3) = 02.04.2027 5:30:05
AddYears(ToDateTime("2.4.2024 5:30:05"), 3) = 02.04.2027 5:30:05
AddYears([Employees.BirthDate], 3) = 27.01.1989 0:00:00
</syntaxhighlight>
 
== DateDiff ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>DateDiff</code> || <code>DateTime date1, DateTime date2</code> || <code>TimeSpan</code>
|}
 
Возвращает интервал — количество дней, часов, минут, секунд между двумя датами.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
DateDiff(new DateTime(2024,4,2,5,0,0), new DateTime(2025,1,2,5,30,5)) = -275.00:30:05
DateDiff(ToDateTime("2.1.2025 5:30:05"), ToDateTime("2.4.2024 5:00:00")) = 275.00:30:05
DateDiff(ToDateTime("2.4.2024 5:00:00"), [Employees.BirthDate]) = 13945.05:00:00
</syntaxhighlight>
 
== DateSerial ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>DateSerial</code> || <code>int year, int month, int day</code> || <code>DateTime</code>
|}
 
Создает новое значение <code>DateTime</code> из указанных года (<code>year</code>), месяца (<code>month</code>) и дня (<code>day</code>).
 
Еще один доступный способ для установки конкретной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
DateSerial(2024,4,2) = 02.04.2024 0:00:00
</syntaxhighlight>
 
== Day ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Day</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает день месяца (1-31) из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Day(new DateTime(2024,4,2)) = 2
Day(ToDateTime("2.4.2024")) = 2
Day([Employees.BirthDate]) = 27
</syntaxhighlight>
 
== DayOfWeek ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>DayOfWeek</code> || <code>DateTime date</code> || <code>string</code>
|}
 
Возвращает название дня недели (понедельник..воскресенье) указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
DayOfWeek(new DateTime(2024,4,2)) = "вторник"
DayOfWeek(ToDateTime("2.4.2024")) = "вторник"
DayOfWeek([Employees.BirthDate]) = "понедельник"
</syntaxhighlight>
 
== DayOfYear ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>DayOfYear</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Возвращает порядковый номер дня в году (1-365) в указанной дате.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
DayOfYear(new DateTime(2024,4,2)) = 93
DayOfYear(ToDateTime("2.4.2024")) = 93
DayOfYear([Employees.BirthDate]) = 27
</syntaxhighlight>
 
== DaysInMonth ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>DaysInMonth</code> || <code>int year, int month</code> || <code>int</code>
|}
 
Возвращает количество дней в месяце month указанного года year.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
DaysInMonth(2024, 4) = 30
</syntaxhighlight>
 
== Hour ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Hour</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает час (0-23) из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Hour(new DateTime(2024,4,2,5,30,5)) = 5
Hour(ToDateTime("2.4.2024 5:30:05")) = 5
Hour([Employees.BirthDate]) = 0
</syntaxhighlight>
 
== Minute ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Minute</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает минуты (0-59) из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Minute(new DateTime(2024,4,2,5,30,5)) = 30
Minute(ToDateTime("2.4.2024 5:30:05")) = 30
Minute([Employees.BirthDate]) = 0
</syntaxhighlight>
 
== Month ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Month</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает месяц (1-12) из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Month(new DateTime(2024,4,2)) = 4
Month(ToDateTime("2.4.2024")) = 4
Month([Employees.BirthDate]) = 1
</syntaxhighlight>
 
== MonthName ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>MonthName</code> || <code>int month</code> || <code>string</code>
|}
 
Возвращает локализованное название месяца (Январь..Декабрь) с номером <code>month</code>.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
MonthName(1) = "Январь"
</syntaxhighlight>
 
== Second ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Second</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает секунды (0-59) из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Second(new DateTime(2024,4,2,5,30,5)) = 5
Second(ToDateTime("2.4.2024 5:30:05")) = 5
Second([Employees.BirthDate]) = 0
</syntaxhighlight>
 
== Year ==
{|class="wikitable" style="background-color: #fff;"
|-
! Функция !! Параметры !! Возвращаемое значение
|-
 
| <code>Year</code> || <code>DateTime date</code> || <code>int</code>
|}
 
Извлекает год из указанной даты.
 
'''Пример:'''
<syntaxhighlight lang="csharp">
Year(new DateTime(2024,4,2)) = 2024
Year(ToDateTime("2.4.2024")) = 2024
Year([Employees.BirthDate]) = 1986
</syntaxhighlight>

Текущая версия от 03:42, 19 октября 2026

Установка конкретной даты

Для установки конкретной даты можно использовать:

  • конструкторы структуры DateTime;
new DateTime(год, месяц, день, часы, минуты, секунды);
  • функцию ToDateTime (подробнее в разделе Конвертирование);
  • функцию DateSerial (рассматривается ниже).

Информация о времени

  • при использовании функций для преобразования даты из данного раздела по умолчанию сохраняется и информация о времени;
  • для удаления времени из даты можно воспользоваться функциями Format или FormatDateTime (более подробная информация об этих функциях представлена в разделе Форматирование).

Примечание

В качестве примера использования поля из базы данных в функциях будет использоваться условное поле [Employees.BirthDate]:

[Employees.BirthDate] = 27.01.1986

AddDays

Функция Параметры Возвращаемое значение
AddDays DateTime date, double value DateTime

Добавляет к дате date количество дней value и возвращает новую дату.

Пример:

AddDays(new DateTime(2024,4,2), 2) = 04.04.2024 0:00:00
AddDays(ToDateTime("2.4.2024"), 2) = 04.04.2024 0:00:00
AddDays([Employees.BirthDate], 2) = 29.01.1986 0:00:00

AddHours

Функция Параметры Возвращаемое значение
AddHours DateTime date, double value DateTime

Добавляет к дате date количество часов value и возвращает новую дату.

Пример:

AddHours(new DateTime(2024,4,2,5,30,5), 1) = 02.04.2024 6:30:05
AddHours(ToDateTime("2.4.2024 5:30:05"), 1) = 02.04.2024 6:30:05
AddHours([Employees.BirthDate], 1) = 27.01.1986 1:00:00

AddMinutes

Функция Параметры Возвращаемое значение
AddMinutes DateTime date, double value DateTime

Добавляет к дате date количество минут value и возвращает новую дату.

Пример:

AddMinutes(new DateTime(2024,4,2,5,30,5), 10) = 02.04.2024 5:40:05
AddMinutes(ToDateTime("2.4.2024 5:30:05"), 10) = 02.04.2024 5:40:05
AddMinutes([Employees.BirthDate], 10) = 27.01.1986 0:10:00

AddMonths

Функция Параметры Возвращаемое значение
AddMonths DateTime date, int value DateTime

Добавляет к дате date количество месяцев value и возвращает новую дату.

Пример:

AddMonths(new DateTime(2024,4,2,5,30,5), 2) = 02.06.2024 5:30:05
AddMonths(ToDateTime("2.4.2024 5:30:05"), 2) = 02.06.2024 5:30:05
AddMonths([Employees.BirthDate], 2) = 27.03.1986 0:00:00

AddSeconds

Функция Параметры Возвращаемое значение
AddSeconds DateTime date, double value DateTime

Добавляет к дате date количество секунд value и возвращает новую дату.

Пример:

AddSeconds(new DateTime(2024,4,2,5,30,5), 10) = 02.04.2024 5:30:15
AddSeconds(ToDateTime("2.4.2024 5:30:05"), 10) = 02.04.2024 5:30:15
AddSeconds([Employees.BirthDate], 10) = 27.01.1986 0:00:10

AddYears

Функция Параметры Возвращаемое значение
AddYears DateTime date, int value DateTime

Добавляет к дате date количество лет value и возвращает новую дату.

Пример:

AddYears(new DateTime(2024,4,2,5,30,5), 3) = 02.04.2027 5:30:05
AddYears(ToDateTime("2.4.2024 5:30:05"), 3) = 02.04.2027 5:30:05
AddYears([Employees.BirthDate], 3) = 27.01.1989 0:00:00

DateDiff

Функция Параметры Возвращаемое значение
DateDiff DateTime date1, DateTime date2 TimeSpan

Возвращает интервал — количество дней, часов, минут, секунд между двумя датами.

Пример:

DateDiff(new DateTime(2024,4,2,5,0,0), new DateTime(2025,1,2,5,30,5)) = -275.00:30:05
DateDiff(ToDateTime("2.1.2025 5:30:05"), ToDateTime("2.4.2024 5:00:00")) = 275.00:30:05
DateDiff(ToDateTime("2.4.2024 5:00:00"), [Employees.BirthDate]) = 13945.05:00:00

DateSerial

Функция Параметры Возвращаемое значение
DateSerial int year, int month, int day DateTime

Создает новое значение DateTime из указанных года (year), месяца (month) и дня (day).

Еще один доступный способ для установки конкретной даты.

Пример:

DateSerial(2024,4,2) = 02.04.2024 0:00:00

Day

Функция Параметры Возвращаемое значение
Day DateTime date int

Извлекает день месяца (1-31) из указанной даты.

Пример:

Day(new DateTime(2024,4,2)) = 2
Day(ToDateTime("2.4.2024")) = 2
Day([Employees.BirthDate]) = 27

DayOfWeek

Функция Параметры Возвращаемое значение
DayOfWeek DateTime date string

Возвращает название дня недели (понедельник..воскресенье) указанной даты.

Пример:

DayOfWeek(new DateTime(2024,4,2)) = "вторник"
DayOfWeek(ToDateTime("2.4.2024")) = "вторник"
DayOfWeek([Employees.BirthDate]) = "понедельник"

DayOfYear

Функция Параметры Возвращаемое значение
DayOfYear DateTime date int

Возвращает порядковый номер дня в году (1-365) в указанной дате.

Пример:

DayOfYear(new DateTime(2024,4,2)) = 93
DayOfYear(ToDateTime("2.4.2024")) = 93
DayOfYear([Employees.BirthDate]) = 27

DaysInMonth

Функция Параметры Возвращаемое значение
DaysInMonth int year, int month int

Возвращает количество дней в месяце month указанного года year.

Пример:

DaysInMonth(2024, 4) = 30

Hour

Функция Параметры Возвращаемое значение
Hour DateTime date int

Извлекает час (0-23) из указанной даты.

Пример:

Hour(new DateTime(2024,4,2,5,30,5)) = 5
Hour(ToDateTime("2.4.2024 5:30:05")) = 5
Hour([Employees.BirthDate]) = 0

Minute

Функция Параметры Возвращаемое значение
Minute DateTime date int

Извлекает минуты (0-59) из указанной даты.

Пример:

Minute(new DateTime(2024,4,2,5,30,5)) = 30
Minute(ToDateTime("2.4.2024 5:30:05")) = 30
Minute([Employees.BirthDate]) = 0

Month

Функция Параметры Возвращаемое значение
Month DateTime date int

Извлекает месяц (1-12) из указанной даты.

Пример:

Month(new DateTime(2024,4,2)) = 4
Month(ToDateTime("2.4.2024")) = 4
Month([Employees.BirthDate]) = 1

MonthName

Функция Параметры Возвращаемое значение
MonthName int month string

Возвращает локализованное название месяца (Январь..Декабрь) с номером month.

Пример:

MonthName(1) = "Январь"

Second

Функция Параметры Возвращаемое значение
Second DateTime date int

Извлекает секунды (0-59) из указанной даты.

Пример:

Second(new DateTime(2024,4,2,5,30,5)) = 5
Second(ToDateTime("2.4.2024 5:30:05")) = 5
Second([Employees.BirthDate]) = 0

Year

Функция Параметры Возвращаемое значение
Year DateTime date int

Извлекает год из указанной даты.

Пример:

Year(new DateTime(2024,4,2)) = 2024
Year(ToDateTime("2.4.2024")) = 2024
Year([Employees.BirthDate]) = 1986