关于时间比较的想法---20190223

  最近想用STM32读取SD卡中配置信息,和GPS时间做比较后实现定时开关机的功能。

要求如下:

1.设备读取SD卡内容后,和当前GPS时间进行比较:

2.GPS时间中年月日不会出现0x00的值,但是时分秒中会出现0x00.

3.时间比较函数:

读取配置文件中时间信息和当前GPS时间信息,逐字节进行比较,如果配置文件中时间大于当前GPS时间返回1,等于返回0,大于返回2.

配置文件中的时间进行限制:没有用到的时间记作0xFF,如定时在每天的6点开始,年月日时分秒记作0xFF 0xFF 0xFF 0x06 0x00 0x00.

这样在进行时间比较时如果配置文件中的时间信息某个字节为0xFF,则放弃该字节比较,进行下一位比较。

4.如果在某天的某个小开机到某个小时关机:

例如:0:00开机---3:00关机, 这种情况可以直接进行比较,GPS时间大于0:00小于3:00可以开机,大于3:00则关机。

如果需要在前一天的某个小时开机,到第二天的某个小时关机:

例如在每天的22:00开机到第二天的1:00关机。开机情况分析:如果GPS时间大于开机时间,为开机状态,如果GPS时间小于关机时间为开机状态,如果GPS时间大于关机时间且小于开机时间则为关机状态。

5.总结,:

    如果当前时间小于开机时间且小于关机时间 --- 1.如果关机时间大于开机间---关机,如果关机时间小于开机时间---开机;

              如果当前时间小于开机时间且大于关机时间  --- 关机

    如果当前时间大于开机时间且小于关机时间 --- 开机

            如果当前时间大于开机时间且大于关机时间 --- 1.如果关机时间大于开机时间--关机 ,2.如果关机时间小于开机时间--开机;

代码处理:如果((当前时间大于开机时间且小于关机时间) || (当前时间大于开机且大于关机&&关机时间小于开机时间)||(当前时间小于开机时间且小于关机时间&&关机时间小于开机时间))----开机

                  否则 关机处理。

6. 如果配置时间为7:00~9:00  如果GPS时间在6:00 ---关机,如果GPS时间为8:00---开机,GPS时间在10:00 ---关机 。

    如果配置时间为9:00~7:00  如果GPS时间在6:00 -- 开机,如果GPS时间为8:00---关机,GPS时间在10:00 --- 开机。

    如果配置时间为22:00~2:00 如果GPS时间在21:00--关机, 如果GPS时间为23:00---开机,GPS时间在1:00--开机。

 

猜你喜欢

转载自www.cnblogs.com/Better-Hai/p/10422888.html
今日推荐