Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Вычесть из даты один день

Ответить
Настройки темы
PowerShell - [решено] Вычесть из даты один день

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


на вход скрипту подается значение переменой $dates. дата может быть введена любая, по желанию пользователя.

нужно вычесть из этой даты один день. пробую следующий вариант, но он терпит неудачу:

Код: Выделить весь код
function test_func {
param(
[parameter(
          mandatory=$true,
          position = 0
          )
]
          [datetime]$dates
     )
$dates = $dates.adddays(-1)
}
после выполнения операции вычитает из месяца единицу и почему-то меняет местами месяц и день

Отправлено: 13:02, 18-07-2014

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Формат даты - MM.dd.yyyy

Код: Выделить весь код
PS >  [datetime]"1.10.2014"

10 января 2014 г. 0:00:00
Формат даты - yyyy.MM.dd

Код: Выделить весь код
PS > [datetime]"2014.10.1"

1 октября 2014 г. 0:00:00

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

Последний раз редактировалось Kazun, 18-07-2014 в 13:18.


Отправлено: 13:05, 18-07-2014 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для yurfed

Ветеран


Сообщения: 20133
Благодарности: 3145

Профиль | Отправить PM | Цитировать


Grafitchic, а если это первое число месяца?
Наверно сначала расписать месяцы по количеству дней. затем условие если это первое число, учесть и смену названия месяца
Например 1 апреля минус один день = 31 марта
Больше не подскажу. Знаний здесь не хватает. Просто мысли вслух
Примерно такого плана. Только это батник.

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Последний раз редактировалось yurfed, 18-07-2014 в 13:41.


Отправлено: 13:28, 18-07-2014 | #3


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


формат даты будет dd/MM/yyyy

то есть, чтобы определить формат необходимо вначале скрипта указать следующую сроку?

Код: Выделить весь код
[datetime]"1/10/2014"

Отправлено: 13:58, 18-07-2014 | #4


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
function test_func {
param(
[parameter(
          mandatory=$true,
          position = 0
          )
]
          $dates
     )
$dates = [datetime]::parse($dates).adddays(-1)
$dates
}

PS > test_func "1/10/2014"

30 сентября 2014 г. 0:00:00

PS > test_func "1.10.2014"

30 сентября 2014 г. 0:00:00
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:01, 18-07-2014 | #5


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


спасибо

Отправлено: 16:37, 18-07-2014 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Вычесть из даты один день

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] текущая дата минус один день. dvassilyev Скриптовые языки администрирования Windows 19 29-09-2021 19:19
CMD/BAT - Сранение даты из файла с текущей датой InVariable Скриптовые языки администрирования Windows 0 07-02-2012 11:53
Интернет празднует еще один день рождения OSZone News Новости информационных технологий 0 01-11-2009 16:30
"День 7" - на носу: Windows 7 осталось ждать один день OSZone News Новости и события Microsoft 0 21-10-2009 12:30
Вопрос по лицензированию w2k3 (просрочил один день) mark4ever Microsoft Windows NT/2000/2003 6 31-05-2006 08:50




 
Переход