Pdate

Материал из СисадминВики (SysadminWiki.ru)
Перейти к: навигация, поиск

Описание

pDate - это бесплатный аналог unix'овой команды date для Windows, т.е. консольная программа для вывода в заданном формате даты и времени на любой день с 4000 лет до н.э. и до 4000 лет н.э. Удобна для использования в bat и cmd файлах. Ключи подбирались аналогично юниксовому собрату. Все даты выдаются по григорианскому календарю.

Сама программа и её исходные тексты распространяются под лицензией Общественное Достояние (Public Domain), т.е. их можно использовать и изменять без каких-либо ограничений.

Скачать:



Примеры использования

1) Сокращённое названия дня недели и через пробел сегодняшняя дата :

pdate.exe "a D"
Wed 19.10.2005

2) Позавчерашний день недели, число и месяц:

pdate.exe "a d b" -2
Mon 17 Oct

3) Завтра:

pdate.exe "A B d" 1
Thursday October 20

4) Можно задавать любой текст для вывода вместе с датой. В этом случае все ключевые символы должны предваряться экранным символом "\", но, для совместимости с последующими версиями программы, лучше все выводимые символы предварять экранным символом:

pdate.exe "\T\o\d\a\y \i\s D \w\h\i\c\h \i\s a"
Today is 19.10.2005 which is Wed

5) Пример вывода в две строки в разных форматах:

pdate.exe Y.m.d-H:M:S:NnD_T
2005.10.19-17:15:58:125
19.10.2005_17:15:58

Таким образом, чтобы в командном файле построить имя файла, отражающее время его создания, можно так определить суффикс:

rem --- устанавливаем и получаем переменную %dm% с текущей датой ---
pdate.exe "\s\e\t \d\m\=Y.M.d" > tmp.bat
call tmp.bat
del tmp.bat
set FileName=name_%dm%.log

Для 1 сентября 2007 года будем иметь переменную FileName равную name_2007.09.01.log


Синтаксис и ключи

pdate.exe FORMAT [DAYS]

FORMAT контролирует вывод команды. Может состоять из любой последовательности ключей или других символов. Общая длина не должна превышать 255 символов.Так как пробел является разделителем параметров в вызываемой команде, то при использовании этого символа в выводе нужно всю строку ключей заключать в кавычки (примеры 1-4). Если пробел не используется, то кавычки не нужны (пример 5). Значения ключей:

  • a - аббревиатура дня недели (Mon..Sun)
  • A - полное наименование дня недели (Monday..Sunday)
  • b - аббревиатура названия месяца (Jan..Dec)
  • B - полное название месяца (January..December)
  • c - дата и время
  • C - век
  • d - число (01..31)
  • D - дата (dd.mm.yy)
  • e - число (1..31)
  • F - тоже что "a D"
  • H - час по 24-часовому исчислению (00..23)
  • I - час по 12-часовому исчислению (00..12)
  • j - номер дня в году (001..366)
  • m - номер месяца (01..12)
  • M - минута (00..59)
  • n - перенос строки
  • N - миллисекунда (0..999)
  • p - индикатор (заглавными) для 12-часового исчисления AM (до полудня) или PM (после полудня)
  • P - индикатор строчными am или pm
  • S - секунда (00..59)
  • T - время (hh:mm:ss)
  • u - день недели (1..7), 1 = Понедельник
  • V - номер недели в году (01..53), первая неделя считается за целую
  • W - номер недели в году (00..52), сколько прошло целых семидневок, т.е. дни / 7
  • y - последние две цифры года(00..99)
  • Y - год
  • z - дата и время в формате 2006.01.31_05:38:45
  • Z - дата и время в формате 31.01.2006 05:38:45
  • ?,/? - справка

DAYS задаёт отклонение в днях от сегодняшнего (см примеры).

  • =0 сегодня, то же если опустить этот параметр.
  • >0 будущее, напр. 1 = завтра
  • <0 прошлое, напр. -1 = вчера

Для программистов

  • В программе создан свой тип pDate и pTime, для которых определены свои операторы сложения и вычитания.
  • Используются одно- и двухмерные массивы, числовые и строковые.
  • Есть функции преобразования типов.