按你的说法很简单啊,在前面加一个记录天数变量k(24小时算一天)判断做时间的: if time1<datetime1<time2 then M=a if datetime2<time2 then M=a else M=a+b else M=a if datetime2<time1 then M=a else M=a+bM=M+(a+b)*k有两个问题: 1。time datetime 的写法问题:必须要采用下午7:00是19:00的写法; 2。天数的记录要不就是直接读入,要不时间记录datetime中要有日期记录,来求天数,在其中是以24小时一天的,满24小时才算一天,不足一天k=0;
按照你的说法实现起来一点也不麻烦,分别定义两个时段的集合TimeAreaOne=(time1,time1+1,time1+2...time2-1); //例如(8, 9, 10,11,12,13,14,15,16,17) 计费时间从8:00-17:59分 TimeAreaTwo=(time2,time2+2,time2+3...time1-1); //例如(18,19,20,21,22,23,24, 0, 1, 2,3,4,5,6,7)计费时间从18:00-7:59分 然后用只取车辆入出时间的小时数给datetime1,datetime2接着: if datetime1 in TimeAreaOne then money:=money+A; if datetime1 in TimeAreaTwo then money:=money+B; if datetime2 in TimeAreaOne then money:=money+A; if datetime2 in TimeAreaTwo then money:=money+B;
一点也不清楚
a,b是每小时费用吗
比如 17:59进来 18:01 出去收多少a+b?
回家耍去也
if time1<datetime1<time2 then
M=a
if datetime2<time2 then
M=a
else
M=a+b
else
M=a
if datetime2<time1 then
M=a
else
M=a+bM=M+(a+b)*k有两个问题:
1。time datetime 的写法问题:必须要采用下午7:00是19:00的写法;
2。天数的记录要不就是直接读入,要不时间记录datetime中要有日期记录,来求天数,在其中是以24小时一天的,满24小时才算一天,不足一天k=0;
//例如(8, 9, 10,11,12,13,14,15,16,17) 计费时间从8:00-17:59分
TimeAreaTwo=(time2,time2+2,time2+3...time1-1);
//例如(18,19,20,21,22,23,24, 0, 1, 2,3,4,5,6,7)计费时间从18:00-7:59分
然后用只取车辆入出时间的小时数给datetime1,datetime2接着:
if datetime1 in TimeAreaOne then money:=money+A;
if datetime1 in TimeAreaTwo then money:=money+B;
if datetime2 in TimeAreaOne then money:=money+A;
if datetime2 in TimeAreaTwo then money:=money+B;