Weekend Scripter: Отображение объектов TimeSpan с использованием определителей настраиваемого формата – Hey, Scripting Guy! Blog

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает об использовании определителей настраиваемого формата объекта TimeSpan в Windows PowerShell.

Заметка: Это завершающая статья в серии постов о методах и операторах форматирования в Windows PowerShell.

В этой статье я решил попробовать поработать с определителями настраиваемого формата объекта TimeSpan, чтобы иметь возможность представить значение временного промежутка в таком виде, какой мне нужен.

Заметка: Более подробную информацию об определителях настраиваемого формата объекта TimeSpan вы можете найти в статье Custom TimeSpan Format Strings на сайте MSDN. Функциональность композитного форматирования более полно рассмотрена в статье Composite Formatting.

Определители настраиваемого формата объекта TimeSpan

На сайте MSDN представлена большая таблица, перечисляющая определители настраиваемого формата TimeSpan. Я же чаще всего использую четыре из них.

Определитель формата Описание
  “dd” Число дней в интервале времени. Если требуется, отображает 0 в первой позиции, например – 05.
“hh” Число часов в интервале времени (не включая число часов в полных днях). Таким образом, интервал времени в 25 часов будет представлен как 01. Для отображения дней используйте “dd”.
“mm” Число минут в интервале времени (не включая число минут в полных днях). Таким образом, интервал времени в 65 минут будет представлен как 05. Для отображения часов используйте “hh”.
“ss” Число секунд в интервале времени (не включая число секунд в полных минутах). Таким образом, интервал времени в 65 секунд будет представлен как 05. Для отображения минут используйте “mm”.

Если я укажу определитель формата в виде одной буквы, например “d”, я получу количество дней, не содержащее 0 в первой позиции. Мне кажется, это имеет смысл, и поэтому мне не требуется заучивать еще 4 определителя – я просто знаю, что они есть. В следующем скрипте используется определитель настраиваемого формата для отображения только количества дней между двумя датами. Преимущество такого подхода в том, что я могу создать строку, которая будет выглядеть именно так, как мне нужно.

PS C:\> $ts = [datetime]»3/14/13″ -[datetime]»3/12/13″

PS C:\> «The lapsed time is: {0:dd} days» -f $ts

The lapsed time is: 02 days

Использование объекта TimeSpan

При использовании такого подхода, мы можем отображать только те части объекта TimeSpan, которые нам нужны. Это гораздо проще, чем использовать подвыражения для того чтобы, получить значения определенных свойств объекта. Если я знаю, как использовать нужные мне определители формата в элементе форматирования, я могу выбрать только ту информацию, которая мне нужна. Это позволяет мне более гибко работать с интервалами времени, нежели при использовании стандартных форматов, рассматривавшихся в предыдущей статье — Отображение объектов TimeSpan с использованием композитного форматирования.

PS C:\> «The lapsed time is: {0:dd} days and {0:hh} hours» -f $ts

The lapsed time is: 02 days and 00 hours

Я могу еще немного изменить команду и вывести дни, часы, секунды и даже миллисекунды. (Хотя в подобной ситуации я, наверное воспользуюсь определителем стандартного длинного формата “G”). В следующей команде я получаю количество дней, часов и минут из объекта TimeSpan.

PS C:\> «The lapsed time is: {0:dd} days and {0:hh} hours and {0:mm} minutes» -f $ts

The lapsed time is: 02 days and 00 hours and 00 minutes

Предыдущие команды и их вывод представлены на рисунке.

01

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/03/16/weekend-scripter-use-powershell-and-custom-time-span-format-strings.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s