---
title: 202003 のの会@関数Talk 20th | Talks around @Functions in Notes and Domino
tags:  #lotus notes #hcl technologies #datetime #notes domino #domino designer #formula language #@関数 #式言語 #dominoforever #ずっとノーツ #hcl domino #hcl digital solutions #hcl notes #@adjust #notes #domino #のの会 #notesknows #ローコード #low-code  
author: [あう゛](https://convert.docswell.com/user/abesat)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4JMV8QGNJW.jpg?width=480
description: Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談しております。 第20回は @Adjustを扱っています。また関連して、日付・時刻型の定数について少し。
published: October 04, 20
canonical: https://convert.docswell.com/s/abesat/K6YEY7-202003-function-talk-20th
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4JMV8QGNJW.jpg)

@
-notes knows community- 2020/03/12
@関数Talk
第20回
公開版
@
阿部 覚
(tw:) @abesat


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PJR258Z4E9.jpg)

@
過去のプレゼンを見直していたら
第2回にこんなお話しがありました
@


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PEXDK89Z7X.jpg)

@
要約します：
現在の日時を返す@Now関数では
[SERVERTIME]という引数をつけることができます
@
引数なしの @Now は、PC上の日時を返しますが


# Page. 4

![Page Image](https://bcdn.docswell.com/page/3EKX5KPV7D.jpg)

@
引数つきの @Now([SERVERTIME]) は、
サーバー上の日時を返します
いっぽう、
昨日、今日、明日の値を返す
@Yesterday、@Today、@Tomorrow の各関数は
常にPC上の日付を基準に値を返します
サーバー上の日付を取り込む引数はありません
したがって…
@


# Page. 5

![Page Image](https://bcdn.docswell.com/page/L735KZ4QE5.jpg)

@
@
なんてことを発表していたのですが
「またの機会」を忘れたままにしておりました
そんなニーズがあるかどうかは怪しいですが
せっかくなので今回、確認しようと思います


# Page. 6

![Page Image](https://bcdn.docswell.com/page/87DD3RQW7G.jpg)

@
@Adjust
を雑談
@


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJPX4WLX78.jpg)

@
日時を調節する関数です
年月日
時分秒
指定された日時の値を調整して変更します
図の例では、元の日時を
6秒＋5分＋4時間＋3日＋2か月＋1年
進めています
@


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2EVLX8Q3JQ.jpg)

@
日時を調節する関数です
こちらは、文書の作成日時（@Created ）と
「その20日前」を並べてみたもの
@
調整したいのが「日だけ」「時間だけ」という場合も
「年」「月」「日」「時」「分」「秒」すべて指定します
調整するところ以外は、0の指定になります


# Page. 9

![Page Image](https://bcdn.docswell.com/page/57GXV5WYEL.jpg)

@
日時を調節する関数です
こちらの例では
元の日付を「2日と1カ月」進めています
「1カ月と2日」といわないのは
単位の小さいほうから計算されるからです
@


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4EQ86Z36JP.jpg)

@
昨日・今日・明日は…
きっかけとなった冒頭のお話に戻ります
PC上の日時をいじって不正な日付けを表示するのを防ぎたい場合
PC日付しか表現できない@Todayの代わりに
まず「今日」をサーバー日時できっちり取得するとすると
これ自体は @Adjust を使わなくてもできます
@Todayと同様の表現にするために
@Dateという関数を使い、現在の日時を
今日の&quot;日付だけ&quot;にしています
@


# Page. 11

![Page Image](https://bcdn.docswell.com/page/KJ42431ME1.jpg)

@
昨日・今日・明日は…
そのうえで、昨日と明日については @Adjust を使用します
昨日
明日
昨日・今日・明日をまとめて並べてみました
@


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LE1M41GY7G.jpg)

@
元の日時について
最初の引数である日時ですが
複数指定できます
それぞれの日の1週間後の日付のリスト
こちらのリストはそれぞれの時間の10分前
@


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GEW3X8K1E2.jpg)

@
元の日時について
実は、それらを組み合わせちゃうこともできる
日付だけのほうは1日進み
時間だけのほうは2時間進む
@


# Page. 14

![Page Image](https://bcdn.docswell.com/page/47ZV68ZXE3.jpg)

@
元の日時について
ということは、
例えば、「開始日」と「開始時間」のフィールドが分かれている場合に
○日後 と ■時間後 を まとめて出せたりもします
@
ただし、時間が増加した結果、開始時間が0時をまわっても
開始日のほうは繰り上がったりはしないので、ご注意のほど


# Page. 15

![Page Image](https://bcdn.docswell.com/page/YJ652PZP7V.jpg)

@
ついでに、値の限界も見たくなったりして
果たしていくつまで指定できるの？というのを
またやってみたくなりました
「秒」で試したところ
@
この値を超えると、@Adjustが機能しなくなりました
前回、@DbLookup のお話しでも登場した「2の31乗」です


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GJ5Y2KWPJ4.jpg)

@
ついでに、値の限界も見たくなったりして
「分」でも同様…
@


# Page. 17

![Page Image](https://bcdn.docswell.com/page/LE35KZ46J5.jpg)

@
ついでに、値の限界も見たくなったりして
ただし「時」まですすむと、結果の「年」部分がオーバーフローして
これ以上の検証が意味をなさなくなりました
（実際には8桁の数値の途中でオーバーフローに達しちゃいます）
@


# Page. 18

![Page Image](https://bcdn.docswell.com/page/8EDD3RQMEG.jpg)

@
ここで、今回確認するうちに
気になったところを
お話しさせていただこうかと
@


# Page. 19

![Page Image](https://bcdn.docswell.com/page/V7PX4WLQE8.jpg)

@
@Adjust を試してる
うちに気になった
日時定数のお話し
@


# Page. 20

![Page Image](https://bcdn.docswell.com/page/2JVLX8QP7Q.jpg)

@
ここでの日時定数とは
この部分のことですね
角カッコ（ヘルプでは「ブラケット」と表現してるので検索時に注意）で
かこまれた日時 ないしは 日付、時間
ヘルプでは「日付/時刻定数」と書いています
各単位の先頭0は略してもよく
年と秒も略せます（略した場合は今年と0秒）
@


# Page. 21

![Page Image](https://bcdn.docswell.com/page/5EGXV5WQJL.jpg)

@
気になったことその1：日付の最小値
これ、どういうことかわかりますか？
どうやら不具合ではないのです
@


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4JQ86Z3W7P.jpg)

@
気になったことその1：日付の最小値
1000年加算するのをやめるとこうなります
つまり0001=2001
@


# Page. 23

![Page Image](https://bcdn.docswell.com/page/K7424311J1.jpg)

@
気になったことその1：日付の最小値
表現をこうかえたら少しわかるかな
「&#039;01」ってことみたいです
要は
@
1950～2049の間…現在を含む100年間は、2桁入力でも認識してくれる
ようになっている
でも、00を加えた4桁で表記しても、それが適用されてしまうようです
したがって日時定数では表現できるのは、
西暦100年から後、ということになります


# Page. 24

![Page Image](https://bcdn.docswell.com/page/LJ1M41G5EG.jpg)

@
気になったことその2：コメント追加？
日時定数は日時が入っているところだけ解釈して、
あとは無視してくれるらしく、こんなことしても
エラーになりませんでした 😅
@
（ただし、文字列に「:」を含めると
時間と解釈しようとするのか、エラーが出ます）


# Page. 25

![Page Image](https://bcdn.docswell.com/page/GJW3X8KWJ2.jpg)

@
今回もお付き合いいただき
ありがとうございました
@


