1970/01/01 からの経過秒数を取得するには?


シャーカー  2006-05-13 00:59:24  No: 95373

VB6.0を使っていますが、1970/01/01からの経過秒数を取得するにはどうしたらよいでしょう?
Perlの場合だと、単純に、time()を使えばよいのですが、VBではそれら関数が用意されていないように思えます。


とも  2006-05-13 01:25:57  No: 95374

DateDiff関数でいいんじゃない?


もげ  2006-05-13 01:26:00  No: 95375

挙げるとすれば、DataDiff()でしょうか。
DateDiff("s",#1970/01/01#,now())
もしかするとGMT/JSTの時差の考慮も必要かもしれません。


Say  2006-05-13 19:16:24  No: 95376

正確を期すなら23秒たしたほうがいいかも。


シャーカー  2006-05-14 07:02:33  No: 95377

ともさん、もげさん、Sayさんありがとうございます。
秒数をとれました。
Sayさん>なぜ23秒足すのでしょうか?


Say  2006-05-14 19:01:18  No: 95378

天文時と原子時のずれの補正のため。
1970/01/01以降、現在までに23秒挿入されている。
最近では、日本標準時で、
2006/1/1 8:59:59 と 9:00:00 の間に 8:59:60 が挿入されている。

たとえば、最初に補正が行われたのは1972/07/01なので、
1972/07/01 08:59:59〜09:00:00は現実には2秒あるはずだが、
 datediff("s",CDate("1972/07/01 08:59:59"),CDate("1972/07/01 09:00:00"))
が1を返すことから、datediffはうるう秒に対応していないと思われるので、
正確を期すなら自前での補正が必要かと。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加