Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

3.9.2. Задание даты и времени

По умолчанию дата исчисляется по григорианскому календарю и отображается в таблицах в формате

MM/DD/YYYY

Так, дата 12/31/2004 соответствует 31 декабря 2004 г.

Дата и время представляются по умолчанию в таблицах в формате

MM/DD/YYYY hh:mm:ss AM | PM

где AM (ante meridiem, лат.) – до полудня;

PM (post meridiem, лат.) – пополудни.

При этом:

  • время 00:00:00 AM и 12:00:00 AM означают полночь;

  • время 00:00:00 PM и 12:00:00 PM означают полдень;

  • время от 00:00:00 до 11:59:59 задает время от 00:00:00 AM и 11:59:59 AM;

  • время от 12:00:00 до 23:59:59 задает время от 12:00:00 PM и 11:59:59 PM.

Замечание. Используемые по умолчанию установки для даты и даты и времени можно изменить на вкладке Regional диалогового окна Options (команда меню Tools – Options).

3.9.3. Изменение представления даты и времени

По умолчанию или после выполнения команды SET CENTURY OFF год при печати даты отображается в виде двух последних цифр. После задания SET CENTURY ON год в начертании даты будет выводиться в виде четырех цифр:

set century on

? Date( ) && Напечатает: 12/18/2004

Начертание даты можно изменить, употребив команду SET DATE. Например:

currentDate = Date( )

set date to German

? currentDate && Напечатает: 18.12.04

&& Возвращаемся к заданному по умолчанию способу отображения даты

set date to mdy

? currentDate && Напечатает: 12/18/04

Способ отображения времени регулирует команда SET HOURS TO [12 | 24]. Так, после выполнения

set hours to 24

время будет отображаться в 24-часовом формате и

? DateTime( ) && Напечатает: 11/15/04 19:16:07

По умолчанию или после выполнения команды с опцией 12 или без опции время показывается в 12-часовом формате.

Видимостью секунд при выводе даты и времени управляет команда SET SECONDS. По умолчанию или после исполнения команды с опцией ON секунды отображаются. При употреблении опции OFF время выводится без секунд, например:

set seconds off

? DateTime( ) && Напечатает: 11/15/04 09:25 PM

По умолчанию части даты разделяются символом /. При необходимости можно задать иной разделитель. Вид разделителя между частями даты изменяет команда SET MARK, например:

set mark to "#"

? DateTime( ) && Напечатает: 11#15#04 08:18:22 PM

3.9.4. Константы, задающие дату и время

Константа типа Date имеет формат

{^YYYY–MM–DD}

Например: {^2004–12–31}.

Константа типа DateTime имеет формат

{^YYYY-MM-DD [hh[:mm[:ss]] [a | p]]}

Например: {^2004–12–31 10:25:44 a}.

Не может быть задана константа, содержащая дату, меньшую даты Рождества Христова (по новому стилю).

&& Наименьшая константа типа Date

#define DATE0 {^0001–01–01}

Можно задать пустую константу типа Date:

EmptyDate = {} && или: {– –}

? VarType(EmptyDate) && Напечатает: D

? Empty(EmptyDate) && Напечатает: .T.

? Isblank(EmptyDate) && Напечатает: .T.

3.9.5. Даты по григорианскому и юлианскому календарям

Григорианский календарь (новый стиль) был введен папой Григорием XIII и заменил юлианский календарь (старый стиль). Григорианский календарь берет отсчет от 4 октября 1582 г. по юлианскому календарю. Причем этот день юлианского календаря стал 15 октября 1582 г. в григорианском. Поэтому, если использовать григорианский календарь начиная с 15 октября 1582 г. (по новому стилю), а до этой даты употреблять юлианский календарь, то дат между 5 октября 1582 г. и 14 октября 1582 г. включительно не существует.

По умолчанию даты в VFP задаются и вычисляются по григорианскому календарю. Дату, однако, можно привести к юлианскому календарю.

Функция

SYS(11, dExpression | tExpression | cExpression))

преобразовывает дату, дату и время или строку в формате даты или даты и времени григорианского календаря в номер дня по юлианскому календарю. Тип возвращаемого результата – Character.

Параметры:

dExpression | tExpression | cExpression – дата | дата и время | символьное представление даты или даты и времени по григорианскому календарю.

Пример:

currentDate = Date( )

&& Пусть текущая дата – это 14 ноября 2004 г.

currenrJulianDate = Sys(11, currentDate)

? currentDate && Напечатает: 11/14/04

? currenrJulianDate && Напечатает: 2453324

Дате 01.01.0001 по новому стилю VFP ставит в соответствие дату 1721426. Учитывая, что средняя длительность года в юлианском календаре в интервале 4-х лет равняется 365.25 суток, дата 1721426 задает 4713 год. То есть в VFP по юлианскому календарю можно обращаться к датам вплоть до 4713 года до Рождества Христова.

Обратное преобразование выполнит функция SYS(10).

Функция

SYS(10, nJulianDayNumber)0)

переводит номер дня nJulianDayNumber по юлианскому календарю в символьное представление даты по григорианскому календарю.

Пример:

currenrJulianDate = Sys(11, Date( ))

&& Пусть текущая дата – это 14 ноября 2004 г.

? Sys(10, Val(currenrJulianDate)) && Напечатает: 11/14/04

set century on

? Sys(10, 1721426) && Напечатает: 01/01/0001

Функция

SYS(1))

возвращает строку, содержащую номер дня по юлианскому календарю и отвечающую системной (текущей) дате. Возвращаемое функцией значение верно вычисляется USA-версией VFP для любой системной даты после 14 сентября 1752 г. вплоть до 31 декабря 9999 г.

Пример:

&& Пусть текущая дата – это 14 ноября 2004 г.

? Sys(1) && Напечатает: 2453324

? Sys(11, Date( )) && Напечатает: 2453324

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]