当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2009年4月15日水曜日

日付を数値で表す

なぜか、このブログには日付に関する話題が多い。って自分で書いていて何を言っているのか?時間に追われるような仕事の仕方はしていないはずなのだが・・・

さて、ということで今日も日付に関するサンプルです。
日付を数値で表すとどうなるのか?
表計算ソフトでセルの書式を数値にしておいて、そこに日付を入力すると、日付が数値となって表される。
これと同じ事をLotusScriptでもやってみよう。ということだ。

といっても、とても簡単。
型変換をするだけだ。
日付から数値の場合CDbl、数値から日付の場合CDatを使う。
ここで、気をつけて欲しいのは、「日付から数値の場合」。
Double型に変換する必要があるのだ。
IntegerやLongは整数値なので、時間を表せない。
Singleでは、大きさが足りないからである。


下図はサンプルを実行した結果である。
今日(2009/04/15)は基準日から数えて39,918日目らしい。
ちなみに、基準日(数値で0の日付)はLotusScriptの場合、1899/12/30である。
40,000日目は2009/07/06(惜しい!七夕じゃなかった!)である。


%include "lsconst.lss"

Sub Click(Source As Button)
 '日付を数値で表してみる
 'Lotus Notes/Dominoは1899/12/30 00:00:00が起点になっている
 
 Dim hiduke As NotesDateTime
 Dim ret As String
 
 Set hiduke = New NotesDateTime( Now )
 
 ret = hiduke.DateOnly & Chr$(9) & " : " & Cdbl(Cdat(hiduke.DateOnly))
 ret = ret & Chr$(10) & hiduke.TimeOnly & Chr$(9) & Chr$(9) & " : " & Cdbl(Cdat(hiduke.TimeOnly))
 ret = ret & Chr$(10) & Cstr(Now) & Chr$(9) & " : " & Cdbl(Now)
 Msgbox ret, MB_OK + MB_ICONINFORMATION, "今日を数値で表す"
 
 '今度は数値を日付で表してみる
 Msgbox "40000 : " & Cdat(40000), MB_OK + MB_ICONINFORMATION, "数値を日付で表す"
End Sub


Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: