+def count_schedule(btime,etime):
+ """
+ return rec num (int return[0]:TE /int return[1]:BS/CS)
+ """
+ #typet,bctypet, chtxtt,titlet,btime,etime
+ def rectime_count(btimeb,etimee,liststemp):
+ ##btimeからetimeまでの中に入る数を数えるとともに
+ #リストのbtime,etimeを変更する
+ #[[tenum,bscsnum],retlists]
+ #typet,bctypet, chtxtt,titlet,btime,etime
+ bt=datetime.datetime(*time.strptime(btimeb,"%Y-%m-%d %H:%M:%S")[:-3])
+ et=datetime.datetime(*time.strptime(etimee,"%Y-%m-%d %H:%M:%S")[:-3])
+ lists=liststemp
+ count=[0,0]#te,bscs
+ bttemp
+ retlists=[]
+ for list in lists:
+ btt=datetime.datetime(*time.strptime(list[4],"%Y-%m-%d %H:%M:%S")[:-3])
+ ett=datetime.datetime(*time.strptime(list[5],"%Y-%m-%d %H:%M:%S")[:-3])
+ #NOT( ( rectime.etime <= ? ) OR ( rectime.btime >= ? )
+ if not ((ett<= bt) or (btt >= et)):
+ if list[1].find("cs")>-1:
+ count[1]=count[1]+1
+ elif list[1].find("bs")>-1:
+ count[1]=count[1]+1
+ elif list[1].find("te")>-1:
+ count[0]=count[0]+1
+ """if ettemp>ett:
+ ettemp=et"""
+ if btt<et and ett>et:
+ btt=et
+ if btt>=et:
+ btimett=btt.strftime("%Y-%m-%d %H:%M:%S")
+ etimett=ett.strftime("%Y-%m-%d %H:%M:%S")
+ retlists.append([list[0],list[1],list[2],list[3],btimett,etimett])
+ return [count,retlists]
+ #btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
+ #etime=det.strftime("%Y-%m-%d %H:%M:%S")
+ dls=database.schedule_rectime(btime,etime)
+ btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
+ retcount=[0,0]
+ while retend==0:
+ btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
+ for dl in dls:
+ btemptt=datetime.datetime(*time.strptime(dl[4],"%Y-%m-%d %H:%M:%S")[:-3])
+ etemptt=datetime.datetime(*time.strptime(dl[5],"%Y-%m-%d %H:%M:%S")[:-3])
+ if btemp>btemptt:
+ btemp=btemptt
+ etemp=etemptt
+ elif btemp==btemptt:
+ if etemp>etemptt:
+ etemp=etemptt
+ bt2=btemp.strftime("%Y-%m-%d %H:%M:%S")
+ et2=etemp.strftime("%Y-%m-%d %H:%M:%S")
+ ret2=rectime_count(bt2,et2,dls)
+ if retcount[0]<ret2[0][0]:
+ retcount[0]=ret2[0][0]
+ if retcount[1]<ret2[0][1]:
+ retcount[1]=ret2[0][1]
+ dls=ret2[1]
+ if len(dis)==0:
+ break
+ elif dis[0][4]==btime:
+ break
+ return retcount