« 四捨五入 | トップページ | 文書リンクについて »

@関数式:@Adjustによる日付算出時の注意

@Adjust関数は日時の算出をするのに便利な関数ですが以下の仕様を理解していないと思わぬ日付が返されることがあります。

この関数は下の位、つまり「秒→分→時→日→月→年」の順に計算する仕様のようです。

例えば「日付+1ヶ月後-1日」という計算をする場合、以下のように記述してしまいがちです。

@Adjust(日付;0;1;-1;0;0;0)

ほとんどの日付の場合望み通りの日付を返してくれますが「3月1日」の場合のみ、「3月28日」(閏年の場合は29日)を返します。
これは前述したように@Adjust関数が「日→月→年」の順に計算するため、最初に「-1日」が計算されて「2月28日」になり、その後「+1ヶ月」して「3月28日」となるためです。
他の日付の場合は、テストをしても3月1日以外であれば全て思ったとおりの結果なので気づきにくい間違いですので注意が必要です。

ちなみに望み通りの日付を算出するには、以下のように記述すればOKです。

@Adjust(@Adjust(日付;0;1;0;0;0;0);0;0;-1;0;0;0)

|

« 四捨五入 | トップページ | 文書リンクについて »

Notes/Domino 注意」カテゴリの記事

コメント

来年の当月月末日を求めるロジックを作ろうとして思いっきりはまっていました。
→13ヶ月先の日付から「@day」を減算して求めようとしたのですが、
大の月、小の月の変わり目で、変な日付になっていました。
ありがとうございました。

投稿: 未だにNotes5ユーザー | 2013/12/16 18:31

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/77114/40545454

この記事へのトラックバック一覧です: @関数式:@Adjustによる日付算出時の注意:

« 四捨五入 | トップページ | 文書リンクについて »