我必须感谢早期帮助建议“滴答”。现在我几乎进入了我的逻辑,除了一件事,我的数据库中有一个 unix 时间,当我试图转换为实时并执行逻辑时。
对不起,让我再描述一下问题,
我从数据库中提取了四个不同的时间戳(开始,结束,开始1,结束1),从unix转换为实时。我正在使用以下代码进行转换
DateTime = Convert.ToDateTime("1/1/1970").AddSeconds(SnapTo5Mins(Convert.ToDouble(UnixDate))).AddHours(GMTOFFset);
这里的问题是,当列中的值为零时,日期时间将返回(1970 年 1 月 1 日)。
例如。我在数据库中的起始值为零,然后它重新运行(1970 年 1 月 1 日)
第 1 步:比较时间戳不等于 1/1/1970(原点时间) 第 2 步:如果不相等,则执行 Break = End.Subtract(Start); 第 3 步:如果相等,则将中断值分配为零或任何值 第 4 步:对 start1 重复第 1、2、3 步 第 5 步:连接两个 break + break1
DateTime Origin = new DateTime(1970, 1, 1, 12, 0, 0, 0); DateTime Start ="01/01/1970 12:00"; DateTime End = 01/01/1970 12:00"; DateTime Start1 ="02/10/2013 12:20"; DateTime End1 = "02/10/2013 02:20"; TimeSpan Break;,finalMealBreak1; if (Origin.Year != Start.Year) { Break = End.Subtract(Start); } else { Break = //Assign constant value zero } if (Origin.Year != Start1.Year) { Break1 = End1.Subtract(Start1);//break1 value must be 2hrs } else { Break1 = //Assign constant value zero } TimeSpan FinalBreakResult = Break + Break1; (FinalBreakresult value suppose to be 2 hrs )
提前致谢