248 Views
December 07, 24
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第42回は @TextToTime と @ToTime について
@ -notes knows community- 2023/02/09 @関数Talk 第42回 公開版 @ Talks around @Functions in Notes and Domino ✔ @TextToTime ✔ @ToTime 阿部 覚 (tw:) @abesat 42nd
@ 前2回では @Text(日時値; "*") という式を用いて 日時を"レプリカID形式"にした値を覗いてみよう というお話を行っています まあ、そのお話はいったんおいて 今回の@関数は @
@ @TextToTime @ToTime @ で放談
@ @TextToTimeは第26回でいちどTalkしていますが これに類似した @ToTimeという関数があります 第26回をTalkしたときはお恥ずかしながら、 @ToTime の存在はまるでアタマにありませんでした @ToTimeがどんな関数かを見るために 「@TextToTime と同じことできるの?」 @ 以前の内容もおさらいしつつ、比べてみます
例によって、 @ フォームの見出しに、フィールドに設定した式と 同じものを表示しています @ ※今回、Notes は 12.0.2 へバージョンを上げ、また英語版でなく日本語版を使用しています
@ 引数に日付を表す文字が入っていたら それを日時値の日付に置き換えたものを返す @ToTime も同様に変換します @
@ たとえ、書式が 月日年 など海外の書式でも ある程度吸収してくれます @ToTime も同様に吸収できました @
@ Notesが日本語版の場合、元号を使ったこんな表記だって 吸収 @ToTime も同様に吸収 @ (OS:ここではWindowsが、日本語版であることも、前提になるかもしれません)
@ 年がない、こんな省略形の場合は 今年だと判断して変換 @ToTime でも同様 @
@ これは…? @
@ 日付だけでなく時間にも対応していて こんな表記でも変換してくれます @ToTimeも、同じく @
@ じゃあ、こちらは…? @
@ 日付と時間の両方が記載された書式ですね どこまで融通が利くかはお約束できませんが こんな省略書式でも変換してくれました @ToTimeも、以下同文 @
@ そして、たとえ日時として意識されうる値でなくとも 文字列の合間にある数字だけで 変換しちゃうこともできます @ …と、ここまで、@ToTimeも、すべて同じように 機能しました
じゃあ、違いは…? @ こんな式を検証しようとしました が、@TextToTime のほうは、そもそも式のエラーで フォームが保存できませんでした @
@ 一方、@ToTimeのほうは 今日の日をきちんと日付で返します @
@ それぞれの関数はリスト(複数値)でも動きますが @TextToTime は文字列のリストだけ @ @ToTime は 文字列のリスト、日時のリスト どちらでも値を返せます ※文字列と日時の混在リストはダメ ※数値を @ToTime で変換するのもダメでした
@ しかし当然ながら、ここで疑問がわいてきます もともと日時の値に対して @ @ToTime 、要らなくね?
@ おそらく、こういう利点があると思っています Domino & Notes はその自由度から 変数の値が日時形式なのか文字形式なのか 特定できない場合があるが @ たとえどちらが入っていても、 エラーなく日時として値を返してくれる
@ もっとも、それが利点だとすればイマイチな部分も @TextToTime は 値がなくてもエラーを返しませんが @ToTime はエラーになり、その式が入った文書を 開くこともできず… @ 変数の場合、必ず日時値に変換できなきゃNGですね
@ さて、改めて私称「レプリカID形式」の話を今回も - @TextToTime や @ToTime で変換した値を さらに「レプリカID形式」に変換すると、どうなる? @
@ すなわち… 時間だけの場合は日付部分が「FFFFFFFF」に 日付だけの場合は時間部分が「FFFFFFFF」になります @ これってIPアドレスでのサブネットのようなものかなと 思います と、実は@TextToTime、@ToTime 関数での変換ではなく、 変換後の値の話をしたところで
@ 今回もお付き合い ありがとうございました 😀 @