曾经有一个用户提出过这样一个效果:要求对完成答题的时间不同有一个奖励分,总页数有20页,每页一题,15分钟完成答题奖5分,20分钟答完奖3分,25分钟答完奖2分。
这个效果在奥思3.0/3.01以及之前的版本还做不了,现在的3.1版可以做。在奥思3.1版中增加了一个函数:GetFormatedTime()----取系统时间。
实现的思路是:开始做第一题时取出系统时间,做完最后
首先创建三个整数变量,且必须是全程变量:
num1----取出开始做第一题时的系统时间;
num2----取出做完最后一题的系统时间;
num----num2-num1。
函数GetFormatedTime("格式串")中,格式串有多种,你可以查看用户手册或联机帮助。我们现在只用到取时间的参数,如下:
%H----以24-小时的方式表示小时;
%M----以十进制表示分;
%S----以十进制表示秒。
结果我们取出的时间应该是:小时*3600+分*60+秒。最后得出的数值的单位是秒(注意:应相应修改条件分支中数值的单位,都应变成秒,例如15分钟*60=900秒)。但是,函数GetFormatedTime的返回值是字符串,字符串无法作“乘”运算,我们还需要用函数AtoINT把字符串转换成整数。这样表达式就写成:
num1=AtoINT(GetFormatedTime("%S"))+AtoINT(GetFormatedTime("%M"))*60+AtoINT(GetFormatedTime("%H"))*3600
我们要在第一题所在页的“页进入前”事件中加入上列表达式,即一进入到第一题就开始计时;然后在最后一题所在页的“页退出后”事件中给num2赋值如下:
num2=AtoINT(GetFormatedTime("%S"))+AtoINT(GetFormatedTime("%M"))*60+AtoINT(GetFormatedTime("%H"))*3600
即在做完最后一题以及退出这页时停止计时。之后跳转到列出总分的一页,在这页的“页进入前”事件中作运算:num = num2-num1。然后再作判断。