UiPath上で60進法変換を行いたい

お世話になっております。

2つのExcel間で作業時間を転記する処理を行っているのですが、
入力側は10進法方式(例:4時間半の場合は4.5と表記)
出力側は60進法方式(例:4時間半の場合は4.30と表記)となっています。

格納した入力変数(double型)をUiPath上で60進法形式に変換してからセルに書き込みたいのですが、そういった事は可能でしょうか?
もし可能なら、その方法をご教示頂ければと思います。
(Excel側で変換をさせる…という方法も可能ではありますが、できれば転記させるだけで修正はしない方向でいきたいです)

以上、よろしくお願いいたします。

Double.Parse(HHdm) - Math.Floor(Double.Parse(HHdm))
で、小数点部分を数値化し、60をかけてみたら如何でしょう?

HHdmは文字列型ですが。。。

1 Like

こんにちは

TimeSpan型を使えばよいと思います。以下例です。

d=4.5
ts = TimeSpan.FromHours(d)
result = ts.Hours+ts.Minutes/100

d: Double型、ts:TimeSpan型

小数点下2桁表示としたい場合は result.toString("#.00") としてみてください。

3 Likes

おぉ!こういう手があるのか!φ(…)メモメモ

これだと、24.0だ1日って認識してくれるんですね。
25.0だと、1日と1時間。こんな残業したくはないですが(^・^)

Yoichi様
回答ありがとうございます。

此方の方法で試してみたところ、60進法でセルに出力させることができました。
TimeSpan型というものは知らなかったので目から鱗です。
時間が出てくる処理で必要な時には是非活用していこうと思います。

2 Likes

HANACCHI様
回答ありがとうございます。

此方の方法でも試そうと思ったのですが、理解不足故に思うように値が出ず…

元の時間をHHdmの中に格納する、という認識でよろしいのでしょうか?
Time1 = 4.5
Time2 = Double.Parse(Time1.Tostring) - Math.Floor(Double.Parse(Time1.Tostring))
Time3 = Time2*60
上記の入れ方だとTime3 = 30になってしまいました

30まで出せば、後は整数部を、連結ですねー。

でも、timespanの方が、安全確実でしたね^_^

この部分を見落としておりました。失礼しました。
小数点以下のみを切り取って計算する、という事を理解できました。
補足説明ありがとうございます。

1 Like

一緒に勉強してまいりましょう!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.