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行程度の関数です。
※ところで、実行結果は間違いありませんか?
No.1ベストアンサー
- 回答日時:
何処が不明なのでしょうか?
通常の引き算だと思いますけど …
時 - 時、分 - 分、秒.ミリ - 秒.ミリ
と言ったパートで計算すれば良いのでは 桁借りが生じるのであればそれなりに計算でしょう
経過時間は 00:01:01.942 となると思います
timeGetTimeで取得した Long型で減算してから時分秒に直してみて方が簡単かも知れませんよ
文字列になってしまっているのであれば Split関数で ":"を区切り文字にして分解して演算でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
誕生日にもらった意外なもの
みなさんがもらった誕生日プレゼントで面白いものがあったらぜひ教えてください!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Excelでミリsecまでの2つの時刻の差を求める方法
Excel(エクセル)
-
format関数について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
EXCELなどで「返す」という表現
-
CとFORTRANの計算速度はどちら...
-
C++ でファイルを消す関数(??)
-
バッチファイルでウインドウを...
-
Javaでのある数の小数点乗に...
-
機械の扱える最も0に近い実数は?
-
連立一次方程式を解くプログラム
-
C言語で、べき乗の計算をするプ...
-
連立方程式を解くプログラムを...
-
c言語でsinx=0(0<x<5)をニュー...
-
Excel VBAの残業時間の合計計算...
-
変化させるセルが変化しない
-
コピーマクロを「値のみコピー...
-
SNRの計算の仕方
-
四則演算プログラム(入力式の...
-
剰余の計算方法
-
引き放し法による除算アルゴリ...
-
科学計算
-
C言語で、べき乗の計算方法につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報