全角の日付に対して演算をするには日付型に変換してから計算し、元に戻してあげる。(そのまま計算する方法なんてあるのだろうか・・・、きっとローカルだから無いような・・・)
ちょっとべたな感じいっぱいだが、とりあえずこんな感じでいけそう。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 | function Add-KnajiDate($date,$days) { [char[]]$zen2han = "0","1","2","3","4","5","6","7","8","9" $targetDay = $date $targetDay = -join ([char[]]$targetDay | %{if($zen2han.IndexOf($_) -ge 0){$zen2han.IndexOf($_)}else{$_}}) $culture = New-Object System.Globalization.CultureInfo -argumentlist "ja-JP",$true $culture.DateTimeFormat.Calendar = New-Object System.Globalization.JapaneseCalendar $parsedTargetDay = [DateTime]::ParseExact($targetDay, "ggyy年M月d日",$culture) -join([string[]][char[]]$parsedTargetDay.AddDays($days).ToString( "gyy年M月d日",$culture) | %{if($_ -match '\d'){$zen2han[$_]}else{$_}}) } Add-KnajiDate "平成24年2月8日" 3 |
0 件のコメント:
コメントを投稿