誕生日にもらった意外なもの

Microsoft Office Updateで「Accessで誕生日から年齢を計算する」と言う項目があり、式がのっているのですが、フォームのコントロースロースに
=Datediff("yyyy",[誕生日],now())+int(format(now(),"mmdd")<format([誕生日],"mmdd"))
と入力するとあるのですが、式中にある"INT"の意味がわかりません。
この式でのINTは何を表しているのですか?
よろしくお願いします。

A 回答 (2件)

まず、Datediff("yyyy",[誕生日],now()) で年数のみの計算を行っています。


次に format(now(),"mmdd")<format([誕生日],"mmdd") で、月日を比べて、まだ誕生日がきていなかったらこの式が成立します。判別式ですね。この時、式は True になります。
Datediff の帰り値(数値)とTrueは型が違うので加算できないため Int()を使って数値にしていると思います。
Int(True)=-1、Int(False)=0 で、結局、
年の差を計算して、まだ誕生日がきていなかったら1を引いている式でしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
よくわかりました。
いつもAccessで期間を表したいときに、format関数を使って違う方法で直していたのですが・・・。
とってもよくわかりました。
でも、Accessの関数と、Excelの関数とどう違うんでしょうね?
同じMicrosoftなのに・・・・。

お礼日時:2001/05/20 23:00

Integer(整数)ではないのですか?


日付で出てくるものを数値に変換する関数だと
思います。

ではでは☆

この回答への補足

ご回答ありがとうございます。
私の思い込みなのかもしれないのですが、
int(Format(now(),"mmdd")<Format([誕生日],"mmdd"))
で、たとえば、
Format(now(),"mmdd")で返ってくるのは(今日であれば)
0520
と言う数字が返ってきます。
Format([誕生日],"mmdd"))でかえってくるのは(6月23日生まれ)
0623
と言う数字が返ってきます。
すると、
INT(0520<0623)
と言うことになるのでしょうか?
で、整数?
私は何か考え違いをしているのでしょうか?
たぶん、1プラスするのか、しないのかと言うのを処理しているのだとは思うのですが・・・。お返事いただけますでしょうか?

補足日時:2001/05/20 21:55
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2001/05/21 21:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報