
No.1ベストアンサー
- 回答日時:
何処が不明なのでしょうか?
通常の引き算だと思いますけど …
時 - 時、分 - 分、秒.ミリ - 秒.ミリ
と言ったパートで計算すれば良いのでは 桁借りが生じるのであればそれなりに計算でしょう
経過時間は 00:01:01.942 となると思います
timeGetTimeで取得した Long型で減算してから時分秒に直してみて方が簡単かも知れませんよ
文字列になってしまっているのであれば Split関数で ":"を区切り文字にして分解して演算でしょう
No.4
- 回答日時:
Public Function XferLongToTime(ByVal Jikan As Long) As String
Dim H As Integer
Dim M As Integer
Dim S As Integer
Dim T As Integer
No.3
- 回答日時:
どうも間違いはなさそうな・・・。
下記の関数は、あくまでも素人の作成したもの。
世の中には、もっと洗練された書き方もあるかと思います。
質問者は、あくまでも批判的に吟味し自作の関数に挑戦して下さい。
Public Function XferTimeToLong(ByVal Jikan As String) As Long
Dim H As String
Dim M As String
Dim S As String
Dim T As String
H = CutStr(Jikan, ":", 1)
M = CutStr(Jikan, ":", 2)
S = CutStr(CutStr(Jikan, ":", 3), ".", 1)
T = CutStr(CutStr(Jikan, ":", 3), ".", 2)
XferTimeToLong = T + S * 1000 + M * 60000 + H * 3600000
End Function
Public Function XferLongToTime(ByVal Jikan As Long) As String
Dim H As String
Dim M As String
Dim S As String
Dim T As String
H = Jikan \ 3600000
M = (Jikan - H * 3600000) \ 60000
S = (Jikan - H * 3600000 - M * 60000) \ 1000
T = Jikan Mod 1000
XferLongToTime = Format(H, "00:") & Format(M, "00:") & Format(S, "00.") & Format(T, "000")
End Function
Public Function CutStr(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim strDatas() As String
strDatas = Split("" & Separator & Text, Separator, , 0)
CutStr = strDatas(N * Abs((N <= UBound(strDatas))))
End Function
No.2
- 回答日時:
[イミディエイト]
? XferTimeToLong("15:13:59.054")
54839054
? XferTimeToLong("15:12:57.112")
54777112
? XferLongToTime(54839054)
15:13:59.054
? XferLongToTime(54777112)
15:12:57.112
? XferLongToTime(XferTimeToLong("15:13:59.054")-XferTimeToLong("15:12:57.112"))
00:01:01.942
服飾デザイナでプログラマではありません。
が、一旦、長整数にして計算し、その後に時刻形式に戻したらいいのじゃないかとおもいます。
XferTimeToLong()、XferLongToTime() もDim文を除けば5行程度の関数です。
※ところで、実行結果は間違いありませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- Excel(エクセル) 【Excel】 開始時間からある日時までの経過時間を計算する関数を教えて下さい 5 2023/06/11 22:22
- C言語・C++・C# win10で、正確な待ち時間の作り方 6 2023/02/14 18:28
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- Excel(エクセル) エクセルで日別シフト表を作る(セルに色を付ける) 3 2022/10/15 14:17
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- Excel(エクセル) エクセルで勤務時間の計算をしています。 下記図でstartは勤務開始時間、endは勤務終了時間です。 5 2022/06/07 13:51
- Excel(エクセル) エクセルで休憩時間を引いての作業計画予定表の作成の仕方 2 2023/07/24 14:11
- Excel(エクセル) エクセルの関数について 5 2023/01/26 15:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入射角反射角
-
べき乗の計算が遅い理由
-
65536は2の何乗なのでしょうか?
-
「評価」「評価値」という言葉...
-
勤怠管理表を作成しています、...
-
パソコン
-
Nの階乗
-
DLL(VC++で作った)で稼動中の...
-
C++ で預金計算
-
VBAの高速化に関しての質問
-
分数計算で分母と分子を維持す...
-
C# C1FlexGrid SUBTOTAL で計算式
-
交通流シミュレータ
-
FCC(面心立方)の位置に粒...
-
PHPとJavaでSHA256の結果を同じ...
-
モジュラス103の計算とは何でし...
-
駅間の距離を求め運賃計算するJ...
-
C#でDirectXを利用し、曲面を描...
-
エクセル 再計算とVBA の...
-
VBAで関数をつくる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
バッチファイルでウインドウを...
-
エクセルで特定のセルのみを任...
-
matlabで計算終了
-
モジュラス103の計算とは何でし...
-
変化させるセルが変化しない
-
数値計算の高速化 (cos, sin, exp)
-
CとFORTRANの計算速度はどちら...
-
モジュロ
-
スレッド処理からダイアログを...
-
時間(ミリ秒を含む)の引き算
-
VB6で正確なミリ秒を計測したい...
-
60進数の四則計算
-
PHPとJavaでSHA256の結果を同じ...
-
C言語についてです。 再帰を使...
-
なぜオーバーフローになるので...
-
VBA入力フォームで労働時間の計...
おすすめ情報