Войти

Показать полную графическую версию : [решено] Вычесть из даты один день


Grafitchic
18-07-2014, 13:02
на вход скрипту подается значение переменой $dates. дата может быть введена любая, по желанию пользователя.

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

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


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

Kazun
18-07-2014, 13:05
Формат даты - 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
Grafitchic, а если это первое число месяца?
Наверно сначала расписать месяцы по количеству дней. затем условие если это первое число, учесть и смену названия месяца
Например 1 апреля минус один день = 31 марта
Больше не подскажу. Знаний здесь не хватает. Просто мысли вслух :)
Примерно такого плана (http://forum.oszone.net/post-1925979-4.html). Только это батник.

Grafitchic
18-07-2014, 13:58
формат даты будет dd/MM/yyyy

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

[datetime]"1/10/2014"

Kazun
18-07-2014, 14:01
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
спасибо




© OSzone.net 2001-2012