我从outlook下载了会议室使用情况。 我想知道
我遇到的这个问题是我需要在" StartTime"之间的持续时间。和#34; EndTime&#34 ;;但它们目前是字符串!
开始结束开始时间结束时间
1/1/2014 1/1/2014 5:00:00 PM 5:00:00 PM
此外,可以安全地假设StartTimes和EndTimes没有跨越两天,但也许我想检查一下。 也许转换成24小时制可能有所帮助; "持续时间"那么" EndTime" - " StartTime"。如何为不熟悉的人转换回12小时的时钟。最后,我需要一周中的某一天(星期一,星期二等),事件就会发生。
答案 0 :(得分:0)
这主要可以通过向导完成。
应该做的一些sudo代码将是
COMPUTE Start=number(StartDate, ADATE10).
VARIABLE LEVEL Start (SCALE).
FORMATS Start (ADATE10).
VARIABLE WIDTH Start(10).
EXECUTE.
COMPUTE starttimetest=number(StartTime, TIME8).
VARIABLE LEVEL starttimetest (SCALE).
FORMATS starttimetest (TIME8).
VARIABLE WIDTH starttimetest(8).
EXECUTE.
compute teststartadd=start+starttimetest.
DO if index(starttime,'PM') gt 0 and subs(starttime,1,2) ne '12' .
COMPUTE Realstart=datesum(teststartadd,12,'hours').
ELSE.
COMPUTE REALstart=TESTstartADD.
END IF.
COMPUTE End=number(EndDate, ADATE10).
VARIABLE LEVEL End (SCALE).
FORMATS End (ADATE10).
VARIABLE WIDTH End(10).
EXECUTE.
COMPUTE endtimetest=number(endTime, TIME8).
VARIABLE LEVEL endtimetest (SCALE).
FORMATS endtimetest (TIME8).
VARIABLE WIDTH endtimetest(8).
EXECUTE.
compute testendadd=end+endtimetest.
DO if index(endtime,'PM') gt 0 and subs(endtime,1,2) ne '12' .
COMPUTE RealEnd=datesum(testendadd,12,'hours').
ELSE.
COMPUTE REALEND=TESTENDADD.
END IF.
exe.
delete vars Start
starttimetest
teststartadd
End
endtimetest
testendadd.
exe.
formats RealEnd RealStart(datetime23).
compute Length=datedif(realend,realstart,'hours').
if length > 12 check=1.
freq check.
compute StartWkDay=XDATE.WKDAY(realstart).
compute EndWkDay=XDATE.WKDAY(realEnd).
string StartDayText EndDayText(a8).
你必须使用类似的东西进行转换 *如果XDATE.WKDAY(realstart)= 1 startdaytext =“Sunday”。