面试题答案
一键面试在Visual Basic中,可以使用以下代码获取当前所在周的第一天(假设一周从周日开始)的日期,并以标准日期格式显示:
Dim currentDate As Date
Dim firstDayOfWeek As Date
currentDate = Date
firstDayOfWeek = DateAdd("d", -(Weekday(currentDate, vbSunday) - 1), currentDate)
MsgBox Format(firstDayOfWeek, "yyyy - mm - dd")
用到的日期与时间函数及其作用:
- Date函数:返回当前系统日期。在上述代码中,
currentDate = Date
获取了当前的系统日期,并赋值给currentDate
变量。 - Weekday函数:返回一个Variant (Integer),包含一个整数,代表某个日期是星期几。语法为
Weekday(date, [firstdayofweek])
,其中date
为必要参数,是一个能够表示日期的Variant、数值表达式、字符串表达式或它们的组合。firstdayofweek
为可选参数,指定一星期的第一天是哪一天,若省略则以vbSunday
为第一天。在上述代码中,Weekday(currentDate, vbSunday)
返回当前日期在以周日为第一天的一周中的序号。 - DateAdd函数:返回一个包含已添加指定时间间隔的日期的Variant (Date)。语法为
DateAdd(interval, number, date)
,interval
是必要参数,是一个字符串表达式,指定要添加的时间间隔;number
是必要参数,是一个数值表达式,指定要添加的时间间隔的数目;date
是必要参数,是一个Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。在上述代码中,DateAdd("d", -(Weekday(currentDate, vbSunday) - 1), currentDate)
通过计算当前日期距离本周日(一周的第一天)的天数差值,并将其从当前日期中减去,从而得到本周的第一天的日期。 - Format函数:返回Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。语法为
Format(expression, [format, [firstdayofweek, [firstweekofyear]]])
,在上述代码中,Format(firstDayOfWeek, "yyyy - mm - dd")
将获取到的本周第一天的日期按照指定的标准日期格式"yyyy - mm - dd"
进行格式化并返回。