
No.3ベストアンサー
- 回答日時:
こんにちは。
itohhといいます。たしかに、Date型だと上手く計算できません。
でも、経過時間を計算してくれる関数(DateDiff)を併用するとうまくいきますよ。
例.
Dim wTime As Date
Dim Keika As Date
Dim wBuf As String
Dim wNow As Date
wTime = DateValue("2001/7/16")
wNow = Now
Keika = wNow - wTime
wBuf = DateDiff("h", wTime, wNow) & Format(Keika, ":nn:ss")
No.4
- 回答日時:
どもども田吾作7です。
'日付
Dim wkDate1 As Date
Dim wkDate2 As Date
'差計算ワーク
Dim wkRefDate As Date
'時間計算ワーク
Dim wkHour As Long
'最後に時間を得る文字列
Dim wkStrDate As String
'時間セット
wkDate1 = "2001/7/16 12:00:00"
wkDate2 = "2001/7/15 11:35:21"
'差を求める
wkRefDate = wkDate1 - wkDate2
'時間の算出
wkHour = (Int(wkRefDate) * 24) + Hour(wkRefDate)
'文字列としてセット
wkStrDate = wkHour & ":" & Format(Minute(wkRefDate), "00") & ":" & Format(Second(wkRefDate), "00")
'イミディエイトウィンドウに出力
Debug.Print wkStrDate
ッて感じかな?
DateDiffって使ったこと無いけど、1時間多く計算されるのかな?
実験してみたら、常に一時間大きい値を出してた。実験の仕方が悪いのかな?
うーむDateDiff・・・奥が深い・・・
回答ありがとうございました。ちゃんと動作しました。
常に1時間多く計算されるとのことですが、まだ確認していませんので、
これからやってみたいと思います。
ポイントあげられなくてすみません。
(全員にあげられるように、チェックボックスにすればいいのに・・)
No.2
- 回答日時:
dim Time as Date
dim Keika as Date
dim hh as long
Keika = Now - Time
の後に
hh = clng(Month(Keika)) * 24 '時間
cstr(hh) & ":" format$(Keika,"mm:ss")
でOKでしょう。
コードはチェックしてません。ご了承ください。
ちなみに
>Date型は23:59:59の範囲しかダメなんですよね・・・・。
その通りです。
それから(余談)
str = d * 24 + h & ":" & Format(m, "00") & ":" & Format(s, "00")
は
str = cstr(d * 24 + h) & ":" & Format$(m, "00") & ":" & Format$(s, "00")
と型をそろえた方が良いと思います。
回答ありがとうございました。ちゃんと動作しました。
ポイントあげられなくてすみません。
(全員にあげられるように、チェックボックスにすればいいのに・・)
余談も参考になりました。。。。
No.1
- 回答日時:
Keikaには24時間以上の部分も日数として入っていますが、24時間以上は日数として別にするしかありませんが。
表示はちょっとスマートじゃありませんが、こんな感じでいかが?
Dim d As Long, h As Long, m As Long, s As Long
Dim str As String
h = Hour(Keika) ' 時
m = Minute(Keika) ' 分
s = Second(Keika) ' 秒
d = Int(Keika) ' 日
str = d * 24 + h & ":" & Format(m, "00") & ":" & Format(s, "00")
一番最初に回答してくれてありがとうございました。
このソースコードでちゃんと動きました。
自分も、このようにもっと柔軟に考えられたらなぁと。。。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
VBAの再計算が反映されない件に...
-
タクシー料金の問題です
-
C言語の課題で、1年の秒数を計...
-
C言語の勉強をしていて、for文...
-
EXCELなどで「返す」という表現
-
整数aを入力し、aの2乗、3乗...
-
y=(x^2 +3x+1)^4を微分の定義を...
-
エクセルで特定のセルのみを任...
-
VB6.0で時間の計算方法
-
パチンコゲームを作りたいので...
-
アドオン利率を実質年率に変換
-
モジュラス103の計算とは何でし...
-
Matlabでのinverse(逆関数)の...
-
VBA入力フォームで労働時間の計...
-
中心極限定理とボックスミュラ...
-
傾いた四角形内の範囲の条件式
-
C言語で、べき乗の計算方法につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
排他的論理和 BCC(水平パリテ...
-
matlabで計算終了
-
変化させるセルが変化しない
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
VBAで関数をつくる
-
[急募]Pythonについてです。
-
数値計算の高速化 (cos, sin, exp)
-
切り上げたい
-
C言語についての質問です。 ル...
-
DLL(VC++で作った)で稼動中の...
-
CとFORTRANの計算速度はどちら...
-
CGIの実行権限(ディスク容...
-
趣味で「乗換案内」みたいなソ...
-
エクセルで特定のセルのみを任...
-
functionを含んだプログラムを...
-
時間差を求める
おすすめ情報