我正在尝试编写寻找闰年的代码。但是,嵌套的if
和else
格式似乎有问题。请建议。
[int]$x = Read-Host -Prompt 'Input a year : ';
if ($x % 4 -eq 0) {
Write-Host $x 'is a leap year';
if ($x % 100 -eq 0) {
Write-Host $x 'is a leap year';
if ($x % 400 -eq 0) {
Write-Host $x 'is a leap year';
else {
Write-Host $x 'is not a leap year';
}
}
else {
Write-Host $x 'is not a leap year';
}
}
else {
Write-Host $x 'is not a leap year';
}
答案 0 :(得分:3)
我认为这就是你想要的:
[int]$x = Read-Host -Prompt 'Input a year : ';
If ($x % 4 -eq 0) {
if ($x % 400 -eq 0){
Write-Host $x 'is a leap year';
}
Elseif ($x % 100 -eq 0){
Write-Host $x 'is not a leap year';
}
Else{
Write-Host $x 'is a leap year';
}
}
Else {
Write-Host $x 'is not a leap year';
}
答案 1 :(得分:3)
正如Mathias所提到的,你错过了一个结束的花括号。但是,您仍然可以大量简化代码并嵌套if语句:
[int]$x = Read-Host -Prompt 'Input a year : ';
if($x % 4 -eq 0 -and ($x % 400 -eq 0 -or $x % 100 -ne 0))
{
Write-Host "$x is a leap year"
}
else
{
Write-Host "$x is not a leap year"
}
或者只是使用:
[System.DateTime]::IsLeapYear($x)