0

私は人の年齢を年、月、日、時間、分、秒で取得しようとしています。

これは私がこれまでに得たものです(私は完全なPowerShell初心者であることがわかります):

$now = [datetime]::now
[datetime]$birthday = "12/22/2012 03:22:00"
$age = [datetime]$now - $birthday

Write-Host "My daughter's age is:" $age.Days "days" ($age.Hours) "hours" ($age.Minutes) "minutes" ($age.Milliseconds) "seconds"

出力は次のとおりです。

My daughter's age is: 59 days 10 hours 27 minutes 76 seconds

大丈夫ですが、出力が「人間が読める形式」になっていると、さらにすばらしいでしょう。

1 Month 19 Days 10 hours 28 minutes 16 seconds

これは実際、私が当初予想していたよりもはるかに困難です。コードは、日を月と日に分割するために、毎月何日あるかを知っている必要があります。また、今年はうるう年だと考えてください。

たぶん、PowerShellはその魔法のいくつかでここで役立つことができます!

ありがとうございました!

4

2 に答える 2

0

これがあなたが求めているものだと思います。

[datetime]$birthday = "12/22/2012 03:22:00"
$span = [datetime]::Now - $birthday
$age = New-Object DateTime -ArgumentList $Span.Ticks

Write-Host "My daughter's age is:" $($age.Year -1) Years $($age.Month -1) Months $age.Day "days" ($age.Hour) "hours" ($age.Minute) "minutes" ($age.second) "seconds"
于 2013-02-19T14:19:12.740 に答える
0

誕生日の翌日に確認してください。一日がたくさんあります!

正解は次のとおりです。

[datetime]$birthday = "12/22/2012 03:22:00"
$span = [datetime]::Now - $birthday
$age = New-Object DateTime -ArgumentList $Span.Ticks

Write-Host "My daughter's age is:" $($age.Year-1) Years $($age.Month-1) Months ($age.Day-1) "days" ($age.Hour) "hours" ($age.Minute) "minutes" ($age.second) "seconds"
于 2016-04-12T12:30:44.243 に答える