Дата и время: различия между версиями
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| (не показано 16 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
==Установка конкретной даты== | |||
* | Для установки конкретной даты можно использовать: | ||
* | *конструкторы структуры <code>DateTime</code>; | ||
:<syntaxhighlight lang="csharp"> | |||
new DateTime(год, месяц, день, часы, минуты, секунды); | |||
</syntaxhighlight> | |||
*функцию <code>ToDateTime</code> (подробнее в разделе [[Конвертирование]]); | |||
*функцию <code>DateSerial</code> (рассматривается ниже). | |||
== | ==Информация о времени== | ||
{|class="wikitable" style=" | *при использовании функций для преобразования даты из данного раздела по умолчанию сохраняется и информация о времени; | ||
*для удаления времени из даты можно воспользоваться функциями <code>Format</code> или <code>FormatDateTime</code> (более подробная информация об этих функциях представлена в разделе [[Форматирование]]). | |||
<div style="background-color: #e7f3ff; border-left: 5px solid #2196f3; padding: 15px; margin: 10px 0;"> | |||
'''Примечание''' | |||
В качестве примера использования поля из базы данных в функциях будет использоваться условное поле <code>[Employees.BirthDate]</code>: | |||
<syntaxhighlight lang="text"> | |||
[Employees.BirthDate] = 27.01.1986 | |||
</syntaxhighlight> | |||
</div> | |||
== AddDays == | |||
{|class="wikitable" style="background-color: #fff;" | |||
|- | |- | ||
! | ! Функция !! Параметры !! Возвращаемое значение | ||
! | |||
! | |||
|- | |- | ||
| <code>AddDays</code> || <code>DateTime date, double value</code> || <code>DateTime</code> | |||
|<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> | |} | ||
Добавляет к дате <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> | |} | ||
Добавляет к дате <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> | |} | ||
Добавляет к дате <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> | |} | ||
Добавляет к дате <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> | |||
|<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> | |} | ||
Создает новое значение <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> | ||
|<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> | ||
|<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> | |||
|<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> | |||
|<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) из указанной даты. | ||
{|class="wikitable" style=" | |||
'''Пример:''' | |||
<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