2012.12.3 星期一
教学内容:函数应用(四)
教学目的:掌握日期型函数的应用
教学时间:2课时
教学重点:日期型函数及日期型测试函数
教学难点:函数的要求
教学过程:
一、复习、导入
二、新授
1.格式:DATE([nYear, nMonth, nDay])
功能:返回由操作系统控件的当前系统日期,或创建一个与2000年兼容的日期值。
返回值:日期型
2.注意:
1)DATE() 函数将返回当前的系统日期。
2)Visual FoxFro 命令或函数都不能直接改变系统日期。
3.示例:下面例子显示带有世纪和不带世纪的当前系统日期。
CLEAR
SET CENTURY OFF
? DATE() && 显示不带世纪的本日日期
SET CENTURY ON
? DATE() && 显示带世纪的本日日期
? DATE(1998, 02, 16) && 显示 2000 年兼容的日期值
4.函数相关:CTOD() 、 DATETIME() 、 DTOC() 、 SET CENTURY 、 SET DATE 、 SET MARK TO、
SET FDOW TO [nExpression]、YEAR()、MONTH()、CMONTH()、DAY()。
1)DOW(dExpression | tExpression [, nFirstDayOfWeek])
从日期表达式或日期时间表达式返回该日期是一周的第几天。
2)CDOW(dExpression | tExpression)
从给定日期或日期时间表达式中返回星期值。
三、练习
编写一段程序,完成离高考"2012.6.7"还有***天***小时***分钟的高考倒计时,还要显示今天是哪年、哪月、哪日、星期几的信息。
SET talk off &&关闭屏幕回显
CLEAR &&清屏
SET CENTURY on &&打开世纪开关,显示4位的年份
SET DATE ansi &&将日期格式设置成 年、月、日的格式
SET HOURS TO 24 &&设置时间为24小时制
b=CTOD("2013.06.07") &&设置高考的日期,将字符型转换成日期型
t2=9 &&设定开考的时间为9点
xq="一二三四五六日"
DO whil .t. &&使用死循环
a=DATE() &&获得今天的日期
c=b-a &&计算当前日期与高考日期的天数
c1=ALLTRIM(STR(c,3)) &&将相差天数转换成字符型的,占3上长度,利于使用宏替换函数
t=CTOT(TIME()) &&获得当前日期(包括小时、分钟、秒钟)
t1=HOUR(t) &&获得时间中的小时数,t1为N型小时数
t3=MOD(t2+24-t1,24) &&将开始考试的小时数9,回上24减去当前的小时数,再取24的余,需要大家考虑为什么
t4=STR(t3,2) &&将N型的小时数,转换成字符串
m=MOD(59-MINUTE(t),60) &&获得分钟数
m1=STR(m,2) &&转换成字符串
s=MOD(60-SEC(t),60) &&获得秒数
s1=STR(s,2) &&转换成字符串
@10,1 say "今天是:"+TTOC(DATETIME())+"星期"+SUBSTR(xq,(DOW(a,2)-1)*2+1,2) &&幕的第11行,第二列显示当前的日期和时间(屏幕是从坐标0,0开始计算的)
@11,1 say "离2013年06月07日9点高考开考还有&c1.天,&t4.小时,&m1.分,&s1.秒" &&显示需要的信息,其中利用了宏替换函数&
d=INKEY(1) &&inkey获得按键,如果没有按键则返回0,如果有按键则返回该键的asc码,并保存到变量d中
IF d=13 &&如果按下的是回车,因为回车的ASC码是13
EXIT &&如果是回车的话,上边的条件成立,则执行exit,退出循环体,此时使用本循环不再是‘死循环’。
ENDIF &&与if配对
endd &&与do while配对
四、总结
日期型的函数,常用的有date()、datetime()、ctod()、dtoc()。
五、作业
将练习中的程序弄清、读懂!
六、反思
|