プログラミング

【Powershell】時間の足し算

※はてブより引っ越しました。

Excelに実績時間などを記入する際「1:30」という風に記入することもありますよね。

powershellでその値を「取得して加算したい時」があったのでやってみました!

HH24:MM形式で時間の足し算をしてみる

今回やりたいのは例えば残業「1:30」 深夜残業「1:00」と記入していた場合に
この日の合計残業時間を「2:30」の形で取得したいです。

powershellはDate型だと足し算してくれるので(+(プラス)記号で時間が加算できる)
←この時点ですごい!!
例えばExcelのCell(1,1)に「1:30」 Cell(1,2)に「1:00」と記入していた場合に加算してみると

f:id:topvalue:20180108205035j:plain

System.TimeSpanに変換できませんでした。とエラーになります。
そこで、素直に加算したい値どうしを[TimeSpan]型に変換します!

素直にTimeSpan型に変換して加算する

powershellのExcelオブジェクトの操作についてはこちら。

#セル1,1の値を取得
#.Textで値を取得
$zangyo = sheet.Cells.Item(1,1).Text

#TimeSpan型に変換
$tsZangyo = [TimeSpan]$zangyo 

#セル1,2の値を取得 深夜残業
$shinyaZangyo  = sheet.Cells.Item(1,2).Text

#TimeSpan型に変換
$tsShinyaZangyo = [TimeSpan]$shinyaZangyo

#一日の残業の合計
[TimeSpan]$tsSumZangyou  = $zangyo + $shinyaZangyo

上記のようすると合計値が「2:30」と取得できました!やたー!

TimeSpan型の中身を見てみると

$tsZangyo =
Days : 0
Hours : 1
Minutes : 30

Seconds : 0
Milliseconds : 0
Ticks : 54000000000
TotalDays : 0.0625
TotalHours : 1.5
TotalMinutes : 90
TotalSeconds : 5400
TotalMilliseconds : 5400000

$tsShinyaZangyo =
Days : 0
Hours : 1
Minutes : 00

Seconds : 0
Milliseconds : 0
Ticks : 54000000000
TotalDays : 0.0625
TotalHours : 1.5
TotalMinutes : 90
TotalSeconds : 5400
TotalMilliseconds : 5400000

$tsSumZangyou =
Days : 0
Hours : 2
Minutes : 30

Seconds : 0
Milliseconds : 0
Ticks : 54000000000
TotalDays : 0.0625
TotalHours : 1.5
TotalMinutes : 90
TotalSeconds : 5400
TotalMilliseconds : 5400000

となり時間と分が加算されていることがわかりますね。

後はこれを「DateTime型」に変換しなおすなどすれば、Date型で計算しなおすことができます!

しかしあまり需要はないかもれませんね(´・ω・)

まとめ

powershellはDate型だと時間の加算ができる。

いったんTimeSpan型に変換して加算⇒Datetime型に直す作業が必要。

時間も足し算できるのは便利ですね~。

RECOMMEND

1

新卒で入社したけど『もう仕事を辞めたい』『我慢できない』という方に向けて。新卒入社でカフェのフロアスタッフとしてして働いたけれど、約1年で退職した私からアドバイスです。心がだめになるまで続ける必要なんてありません。

2

女性はライフステージによって休職や転職しなければいけないときがありますよね。
そこでこの記事では女性の転職に有利な資格をまとめてみました。
一生職に困らない、転職に有利な資格とはなにかご覧ください。

3

「今日は会社に行く気がしない・・。」「たまには会社をさぼりたい・・。」なんてことありませんか?本記事では、実際に私の周りで使われていた欠勤理由をご紹介します。今から使える欠勤理由です。本当に仕事に行きたくないときなど活用できると思うので、ぜひ読んでみてください。

-プログラミング

Copyright© Job search info , 2020 All Rights Reserved.