DayOfTheYear — Функция Delphi


Функции и процедуры Delphi. Справочник.

Функция DayOfWeek( Date: TDateTime ): Integer;

Описание
Функция возвращает порядковый номер дня недели (1 . 7) для даты, определенной параметром Date (1 — воскресенье, 2 — понедельник, . 7 — суббота).

Пример
var
S: string;
begin
case DayOfWeek(Date) of
1: S:=’выходной!’;
2: S:=’тяжелый день’;
3: S:=’серые рабочие будни’;
4: S:=’серые рабочие будни’;
5: S:=’серые рабочие будни’;
6: S:=’короткий день’;
7: S:=’выходной!’;
end;
MessageDlg( ‘Сегодня ‘+ S, mtInformation, [mbOk], 0);
end;

Процедуры и функции работы с датой и временем

Function Date: TDateTime;

Возвращает текущую дату.

Function DateTimeToStr(DateTime: TDateTime): String;

Преобразовывает параметр типа TDateTime, содержащий дату и время, в строку. Если параметр DateTime не содержит значения даты, дата устанавливается в 00/00/00. Если параметр DateTime не содержит значения времени, время устанавливается в 00:00:00.

Function DateToStr(Date: TDateTime): String;

Преобразовывает параметр типа TDateTime, содержащий дату, в строку.

Преобразование использует формат, определенный глобальной переменной ShortDateFormat.

Function DayOfWeek(Date: TDateTime): Integer;

Возвращает день недели определенной даты как целое число между 1 и 7. Воскресенье — первый день недели, и суббота — седьмой.

Procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);

Извлекает дату из формата TDateTime и помещает год, месяц и день соответственно в переменные Year, Month и Day.

Procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);

Извлекает время из формата TDateTime и помещает часы, минуты, секунды, и миллисекунды соответственно в переменные Hour, Min, Sec и MSec.

Function EncodeDate(Year, Moth, Day: Word): TDateTime;

Возвращает дату в формате TDateTime, полученную из значений параметров Year, Month и Day.

Year должен быть между 1 и 9999.

Допустимые значения Month — от 1 до 12.

Допустимые значения Day — от 1 до 28, 29, 30, или 31, в зависимости от значения Month. Например, возможные значения Day в течение второго месяца (февраля) — от 1 до 28, или от 1 до 29, в зависимости от того, определяет или нет значение Year високосный год.

Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError. Возникающее в результате значение — единица плюс число дней между 30/12/1899 и данной датой.

Function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;

Возвращает время в формате TDateTime, полученное из значений параметров Hour, Min, Sec и MSec.

Если значение типизированной константы Time24Hour ложно (False), значения Hour лежат в пределах от 0 до 12, если истинно (True) — от 0 до 23.

Допустимые значения Min и Sec — от 0 до 59. Допустимые значения MSec — от 0 до 999.

Илон Маск рекомендует:  Что такое код imagearc

Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError.

Function Now: TDateTime;

Возвращает текущую дату и время в формате TDateTime (дата + время).

Function StrToDate(const S: String): TDateTime;

Преобразовывает строковое представление даты в формат TDateTime. Дата в параметре S должна быть записана по правилам Windows, т.е. должна состоять из двух или трех чисел, отделяемых символом, опреде-ленным в глобальной переменной DateSeparator. Порядок следования месяца, дня и года определен в глобальной переменной ShortDateFormat. Возможные комбинации — m/d/y, d/m/y, и y/m/d.

Если строка содержит только два числа, это интерпретируется как дата (m/d или d/m) в текущем году. Значения Year между 0 и 99 означают год в текущем столетии.

Если строка содержит дату в неверном формате, возбуждается исключительная ситуация EConvertError.

Function StrToTime(Const S: String): TDateTime;

Преобразовывает строковое представление времени в формат TDateTime.

Строка должна состоять из двух или трех чисел, отделяемых символом, определенным в глобальной переменной TimeSeparator. Числа представляют собой часы, минуты, и (необязательно) секунды, в соответствующем порядке.

Если строка содержит время в неверном формате, возбуждается исключительная ситуация EConvertError.

Function Time: TDateTime;

Возвращает текущее время.

Function TimeToStr(Time: TDateTime): String;

Преобразовывает время из формата TDateTime в строковое представление.

Преобразование использует формат, определенный в глобальной переменной LongTimeFormat. Вы можете изменять формат отображения времени, изменяя значения переменных даты и времени (или используя Панель управления Windows).

Delphi-Help

DayOfTheYear

DayOfTheYear

Описание

function DayOfTheYear ( const Date : TDateTime ) : Word;

Функция DayOfTheYear возвращает индекс дня года.
В зависимости от года, значение находится в диапазоне 1..366

Пример кода

var
myDate : TDateTime;
begin
myDate := EncodeDate(2002, 10, 29);
ShowMessage(’20/10/2002 день года = ‘+
IntToStr( DayOfTheYear (myDate)));
end;

Определить день недели для конкретной даты

функция ниже должна определять день недели для конкретной даты. как мне вызвать эту
функцию для 1мая 2000 года ? т.е. как эта дата будет выглядеть в формате TDateTime ?? или может я что-то недопонимаю ?

01.03.2012, 02:07

Определить день недели, на который приходится день с введенной датой
имеются следующие описания:число=1..31 день недели(пн,вт,ср,чт,пт,сб).Считая,что год не високосный.

Определить номер дня недели в году для указанной даты
Помогите создать классы: определить номер дня недели в году для указанной даты. Например, 8 февраля.

Текущее число, день недели, месяц и год (неправильно отображается день недели)
Всем доброго времени суток. Все перечисленное из название темы показывается как есть, кроме Дня.

Определить день недели
type число =1..31; месяц=1..12; год=1..2000; дата = record ч: число; м: месяц; г: год end;.

Get Week Of The Year

Delphi Xe, Win 7, System TimeZone UTC+4:0, The first day of week in system — Monday, Time is synchronised with time.windows.com

In a palette of standard components Delphi Win32 there is component MonthCalendar, at it property WeekNubers=true (display of numbers of weeks), date=now, the first day — Monday.

Shows on 19 number (today) — number of week 43.

I request number through dateutils.WeekOfTheYear(now) = returns 42.

Judging by an initial code of component MonthCalendar — there like all it is true (even if not to expose the first day of week, it takes value from system parametres).

And in inquiry WeekOfTheYear it is told, that all is considered also standard ISO applied, but numbers do not coincide :(

Илон Маск рекомендует:  Установка скриншотов в каталоге на движке cncat

In any way I will not understand, where one week disappears — if to look on a calendar, should be 43 and if to consider, that weeks 53 and the first concerns last year.

By the way WeekOfTheYear on 01.01.2011 too returns 52 though like should return 1.

Why distinctions and where it is correct?

3 Answers 3

Both results are correct, the difference is because the DateUtils.WeekOfTheYear function uses the ISO 8601 standard definition of a week. That is, a week is considered to start on a Monday and end on a Sunday.

Check this explanation about the Weeks Numbers in the ISO 8601 format.

If 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in week 01. If 1 January is on a Friday, Saturday or Sunday, it is in week 52 or 53 of the previous year (there is no week 00). 28 December is always in the last week of its year.

Also the Embarcadero online help for the DateUtils.WeekOfTheYear function says

. if the first calendar day of the year is a Friday, Saturday, or Sunday, then for the first three, two, or one days of the calendar year, WeekOfTheYear returns the last week of the previous year. Similarly, if the last calendar day of the year is a Monday, Tuesday, or Wednesday, then for the last one, two, or three days of the calendar year, WeekOfTheYear returns 1 (the first week of the next calendar year).

So due which the 01-01-2011 was Saturday this week is considered the week number 52 of the previous year.

And that also explains why the week number returned for today (19-10-2011) is 42 instead of 43.

DayOfTheYear Routine

Description

(Please provide a description in your own words. It is illegal to use the wording from the Delphi Help.)

Technical Comments

(Known issues / Documentation clarifications / Things to be aware of)

Examples

(Please provide links to articles/source code that show how to use this item.)

See Also

(Please provide links to items specifically related to this item.)

User Comments/Tips

(Please leave your name with your comment.)

Дата и время в Delphi

Прежде чем использовать в Дельфи функции преобразования дат и времени советую подключить DateUtils


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, DateUtils, ComCtrls;

Вот пример того, что у меня получилось с некоторыми функциями:

Код программы:

//вывод текущей даты

procedure TForm1.Button1Click(Sender: TObject);

//вывод текущей даты

procedure TForm1.FormCreate(Sender: TObject);

StatusBar1.Panels[0].Text:=’Тестовая програмка на фунции дат и времени’;

//вывод текущей даты и времени

procedure TForm1.Button2Click(Sender: TObject);

//день недели

procedure TForm1.Button3Click(Sender: TObject);

Функции Delphi модуля DateUtils

Предлагаем список функций модуля DateUtils , используемого в среде разработки Delphi.

Модуль DateUtils

DayOfTheMonth Дает день месяца для значения TDateTime (ISO 8601)
DayOfTheWeek Возвращает индекс дня недели для значения TDateTime (ISO 8601)
DayOfTheYear Выдает день года для значения TDateTime (ISO 8601)
DaysBetween Выдает целый число дней между 2 датами
DaysInAMonth Выдает число дней в месяце
DaysInAYear Выдает число дней в году
DaySpan Выдает дробное число дней между 2 датами
EncodeDateTime Формирует значение TDateTime из значений времени и дня
EndOfADay Генерирует значение TDateTime, установленное на самый конец дня
EndOfAMonth Генерация значения TDateTime, установленное на самый конец месяца
IncDay Приращивает переменную типа TDateTime на + или — число дней
IncMillisecond Приращивает переменную типа TDateTime на + или — число миллисекунд
IncMinute Приращивает переменную типа TDateTime на + или — число минут.
IncSecond Приращивает переменную типа TDateTime на + или — число секунд
IncYear Увеличивает TDateTime переменную на количество лет
RecodeDate Изменяет только дату переменной TDateTime
RecodeTime Изменяет только время переменной TDateTime
Tomorrow Возвращает дату завтрашнего дня
MonthOfTheYear Выдает месяц года для значения TDateTime
Yesterday Выдает вчерашнюю дату

Илон Маск рекомендует:  Атрибут rows в HTML

Функции Delphi модуля DateUtils : 3 комментария

Давно искала подобное, спасибо очень интересно!

Дни недели

Delphi , Синтаксис , Дата и Время

Дни недели

Тем не менее, начиная со второй версии, Delphi содержат в своем арсенале замечательную функцию DayOfWeek, возвращающую целочисленный результат в диапазоне от 1 до 7. Вот пример кода, присланный Андреем Ивановым:

Статья Дни недели раздела Синтаксис Дата и Время может быть полезна для разработчиков на Delphi и FreePascal.

Комментарии и вопросы

Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.

DayOfTheYear — Функция Delphi

function checkdate(date: string ): boolean;

function Date2julian(date: string ): longint;

function Julian2date(julian: longint): string ;

function DayOfTheWeek(date: string ): string ;

function idag: string ;

function idag(): string ;

другими функциями данного молуля.>

Year, Month, Day: Word;

DecodeDate(Now, Year, Month, Day);

result := IntToStr(year) + IntToStr(Month) + IntToStr(day);

function Date2julian(date: string ): longint;

Если у вас другой формат,

в первую очередь преобразуйте его.>

month, day, year: integer;

ta, tb, tc: longint;

month := strtoint(copy(date, 5 , 2 ));

day := strtoint(copy(date, 7 , 2 ));

year := strtoint(copy(date, 1 , 4 ));

if month > 2 then

month := month — 3

month := month + 9 ;

ta := 146097 * (year div 100 ) div 4 ;

tb := 1461 * (year mod 100 ) div 4 ;

tc := ( 153 * month + 2 ) div 5 + day + 1721119 ;

result := ta + tb + tc

function mdy2date(month, day, year: integer): string ;

y := ‘000’ + inttostr(year);

y := copy(y, length(y) — 3 , 4 );

m := ‘0’ + inttostr(month);

m := copy(m, length(m) — 1 , 2 );

d := ‘0’ + inttostr(day);

d := copy(d, length(d) — 1 , 2 );

result := y + m + d;

function Julian2date(julian: longint): string ;

x, y, d, m: longint;

month, day, year: integer;

x := 4 * julian — 6884477 ;

y := (x div 146097 ) * 100 ;

d := (x mod 146097 ) div 4 ;

y := (x div 1461 ) + y;

d := (x mod 1461 ) div 4 + 1 ;

m := x div 153 + 1 ;

d := (x mod 153 ) div 5 + 1 ;

year := y + m div 11 ;

result := mdy2date(month, day, year);

function checkdate(date: string ): boolean;

Это позволит получить необходимое значение.>

Это всегда будет правильной датой. Для проверки делаем обратное преобразование.

Результат проверки передаем как выходной параметр функции.>

if date = test then

function DayOfTheWeek(date: string ): string ;

и возвращаем день недели.>

julian := (Date2julian(date)) mod 7 ;

0 : result := ‘Понедельник’ ;

1 : result := ‘Вторник’ ;

2 : result := ‘Среда’ ;

3 : result := ‘Четверг’ ;

4 : result := ‘Пятница’ ;

5 : result := ‘Суббота’ ;

6 : result := ‘Воскресенье’ ;

Тем не менее, начиная со второй версии, Delphi содержат в своем арсенале замечательную функцию DayOfWeek, возвращающую целочисленный результат в диапазоне от 1 до 7. Вот пример кода, присланный Андреем Ивановым:

function TForm1.DayOfWeekRus(S: TDateTime): string ;

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL