Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вычесть из даты один день (http://forum.oszone.net/showthread.php?t=285254)

Grafitchic 18-07-2014 13:02 2377938

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

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

Код:

function test_func {
param(
[parameter(
          mandatory=$true,
          position = 0
          )
]
          [datetime]$dates
    )
$dates = $dates.adddays(-1)
}

после выполнения операции вычитает из месяца единицу и почему-то меняет местами месяц и день

Kazun 18-07-2014 13:05 2377939

Формат даты - 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


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

yurfed 18-07-2014 13:28 2377949

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

Grafitchic 18-07-2014 13:58 2377963

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

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

Код:

[datetime]"1/10/2014"

Kazun 18-07-2014 14:01 2377965

Код:

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


Grafitchic 18-07-2014 16:37 2378034

спасибо


Время: 00:34.

Время: 00:34.
© OSzone.net 2001-