Отказ от ответственности: вы, вероятно, уже знаете, но я должен заявить, что это очень плохой пароль, если вы даже можете назвать его так:
Большая часть этого может быть выгружена в DateTime
тип , все, за исключением порядковых суффиксов для дня месяца.
Я бы разбил его на 3 этапа:
- Разобрать дату ввода
- Генерация первой половины
- Рассчитать суффикс
- Добавить год
# Parse the input date
$inputDate = Read-Host "Input date in the format MM/dd/yyyy"
$date = [datetime]::ParseExact($inputDate,'MM/dd/yyyy',$null)
# Generate first half
$dateString = $date.ToString('MMMdd')
# Calculate the ordinal suffix
$day = $date.Day
if($day -in 1,21,31) {
$dateString += 'st'
}
else if($day -in 2,22) {
$dateString += 'nd'
}
else if($day -in 3,23) {
$dateString += 'rd'
}
else {
$dateString += 'th'
}
# Append the year:
$dateString += $date.ToString('yyyy!')