我的问题是计算你的下一个生日是几天 我已经做了输入和计算,但日期的格式是错误的。
我希望我的程序使用以下格式计算您的下一个生日:DD.MM.YYYY
并且没有小数。此外,当我输入类似“你好”的东西时,它不应该崩溃但是给我一个错误,它不是一个有效的日期。
#Clearing
Clear-Host
#Liste von Variabeln
$geburtstag
$datumvonheute
$zeitbisgeburtstag
#initialisieren von Variabeln
$geburtstag = Get-Date
$datumvonheute = Get-Date
$zeitbisgeburtstag = ""
function ParseDate([string]$datumvonheute)
{
try{
$result = 0
if (!([DateTime]::TryParse($datumvonheute, [ref]$result)))
{
throw "Es wurde ein falsches Datum eingegeben! $geburtstag"
}
$isok = $true
$geburtstag.ToDateTime($geburtstag)
} catch {
$result
Write-Host "Falsche Eingabe!"
$isok = $false
}
}
do{
$geburtstag = Read-Host "Bitte geben Sie ihren nächsten Geburtsdatum ein [dd.mm.yyyy]"
ParseDate($geburtstag)
} until($isok = $true)
$FromDate =[DateTime] $datumvonheute
$ToDate =[DateTime] $geburtstag
($ToDate - $FromDate).TotalDays
答案 0 :(得分:1)
由于种种原因,您的格式日期可能有误,但我认为这是因为文化不一样:在您的笔记本电脑上它可能是美国文化(MM / dd / yyyy),而日期你要进入的格式是de-de culture(dd / MM / yyyy)。
您可以在开始时定义文化,然后根据您的需要使用它来正确设置。
$geburtstag.ToDateTime($geburtstag)
你的问题在这里:
$geburtstag = [datetime]::Parse($datumvonheute,$cultureInfo)
您需要解析它才能获得正确的日期:
$fromDate - $toDate
我会计算#Clearing
Clear-Host
$cultureInfo = New-Object System.Globalization.CultureInfo('de-de')
#Liste von Variabeln
$geburtstag
$datumvonheute
$zeitbisgeburtstag
#initialisieren von Variabeln
$geburtstag = Get-Date
$datumvonheute = Get-Date
$zeitbisgeburtstag = ""
function ParseDate([string]$datumvonheute)
{
try{
$result = 0
if (!([DateTime]::TryParse($datumvonheute, [ref]$result)))
{
throw "Es wurde ein falsches Datum eingegeben! $geburtstag"
}
$isok = $true
#$geburtstag.ToDateTime($geburtstag)
$geburtstag = [datetime]::Parse($datumvonheute,$cultureInfo)
} catch {
$result
Write-Host "Falsche Eingabe!"
$isok = $false
}
}
do{
$geburtstag = Read-Host "Bitte geben Sie ihren nächsten Geburtsdatum ein [dd.mm.yyyy]"
ParseDate($geburtstag)
} until($isok = $true)
$FromDate =[DateTime] $datumvonheute
$ToDate =[DateTime] $geburtstag
$totaldays = ($FromDate - $ToDate).Days
Write-Output "Total Days: $totaldays"
,而不是反之亦然
{
"SWITCHID": "Z4-W40-SS451A/5",
"CREATE_DATE": ISODate("2018-02-24T19:00:14.808Z"),
"RECEIVEDDATE": ISODate("2018-02-24T20:30:14.808Z"),
"STATUS": "LIGHTS ON",
"avgduration": 202.50562416666668,
"offduration": 1.5
} {
"SWITCHID": "Z4-W40-SS451A/5",
"CREATE_DATE": ISODate("2018-02-24T19:00:14.808Z"),
"RECEIVEDDATE": ISODate("2018-02-24T20:30:14.808Z"),
"STATUS": "LIGHTS OFF",
"avgduration": 269.5074988888889,
"offduration": 1.5
}
db.k.aggregate({
"$group": {
_id: {
SWITCHID: "$SWITCHID"
},
on_minus_off: {
$sum: {
"$cond": [{
"$eq": ["$STATUS", "ON"]
}, "$avgduration", {
$subtract: [0, "$avgduration"]
}]
}
}
}
})