给定日期DD,可以计算该日期当月最大天数的表达式是:Day(Dateserial(year(DD),Mongth(DD)

1个回答

  • 仔细看看DateSerial的解释,因为DAY为0,所以后面要加month要加1的

    DateSerial函数 返回

    返回包含指定的年、月、日的 Variant (Date).

    语法

    DateSerial(year,month,day)

    DateSerial 函数语法有下列的命名参数:

    部分 描述

    year 必要;Integer.从 100 到 9999 间的整数,或一数值表达式.

    month 必要;Integer.任何数值表达式.

    day 必要;Integer.任何数值表达式.

    说明

    为了指定某个日期,如 1991 年 12 月 31 日,DateSerial 函数中的每个参数的取值范围应该是可接受的;即,日的取值范围应在 1-31 之间,而月的取值范围应在 1-12 之间.但是,当一个数值表达式表示某日之前或其后的年、月、日数时,也可以为每个使用这个数值表达式的参数指定相对日期.

    以下示例中使用了数值表达式代替绝对日期.这里,DateSerial 函数返回 1990 年 8 月 1 日的 十 年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 之前的日期;换句话说,就是 1980 年 5 月 31 日.

    DateSerial(1990 - 10,8 - 2,1 - 1)

    year 参数的数值若介于 0 与 29 之间,则将其解释为 2000–2029年,若介于 30 和 99 之间则解释为1930–1999年.而对所有其它 year 参数,则请用四位数值表示(如 1800).

    当任何一个参数的取值超出可接受的范围时,它会适时进位到下一个较大的时间单位.例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数将由其年份与月份来决定.如果一个参数值超出 -32,768 到 32,767 的范围,就会导致错误发生.