警示后人
查看原帖
警示后人
353688
王熙文楼主2023/3/28 16:41

不保证阳光长跑相邻两条的时间不想交,也就是说有可能当前的开始时间早于上一次的结束时间。如果判断的时候写成这样:

bool check(Data x,Data y)
{
	if(x.bg.s<y.ed.s) --x.bg.m,x.bg.s+=60;
	if(x.bg.m<y.ed.m) --x.bg.h,x.bg.m+=60;
	if(x.bg.h<y.ed.h) --x.d,x.bg.h+=24;
	if(x.d==0) x.d=days[--x.m];
	if(x.m!=y.m || x.d!=y.d) return 1;
	return (x.bg.h-y.ed.h)*3600+(x.bg.m-y.ed.m)*60+x.bg.s-y.ed.s>=6*3600;
}

就会错,因为有可能 x.m<y.mx.m <y.mx.m=y.mx.d<y.dx.m=y.m \land x.d<y.d

2023/3/28 16:41
加载中...