Я знаю, что было бы невозможно сделать то, что мне нужно, но я ищу способ гарантировать, что пользователь вводит дату в правильном формате. я написал кусок кода, который может подтвердить даты, кто (день) часть DD находится между 13-31, но я борюсь с датами, которые имеют DD между 1-12Validate Data formatting powershell
напра: можно проверить эту дату 23/06/2016 и исправить ее, чтобы быть 06/23/2016 , но я не могу гарантировать, что дата 12 июня введена правильно. , если кто-то введет 12/06/2016, это по определению действительная дата, но не та, которая мне нужна (06/12/2016), и я не могу быть уверен, что дата такова, что я намеревался это быть
если кто может мольбы мне точку решение будет высоко оценено
, если это делает никакой разницы, это мой код:
$Date = $args[0]
$Time = $args[1]
try
{
$tmpDate = $Date +" " +$Time
[DateTime]$UserDate = $tmpDate
}
catch
{
$tmp = $Date
$tmp -match "(?<d>.*)/(?<m>.*)/(?<y>.*)">$null
$_Date = $matches['m']+"/"+$matches['d']+"/"+$matches['y']
$tmpDate = $_Date +" " +$Time
try
{
[DateTime]$UserDate = $tmpDate
}
catch
{
write-host "Error: The Given Date was not recognized as a valid Date, Please Try again" -ForegroundColor Red
Exit 808040
}
}
проблема заключается не в том, что я не могу сообщить пользователю о ожидаемом вводе, есть большой тег, в котором указано, что им нужно вводить, но люди иногда даже не дают ***** о том, что они нужно делать и как я должен быть готов к любым ошибкам, которые могут произойти. во всяком случае, моя борьба, как я уже упоминал, заключается в том, что 12/06/2016 - это действительная дата, и я не могу проверить форматирование в этом случае. – Ori
Все еще актуально. – Ori