我有一个需要保存以下数据的应用程序:开始时间+持续时间,类似于android / iOs上可用的免打扰(请勿打扰)服务。
用户可以指定开始时间和结束时间 作为开始时间2300小时和结束时间0700小时
我使用的是以下data_structure: -
typedef struct _timeOfDayDataStruct
{
unsigned int start_time; //to hold the start time e.g 2300
unsigned int duration_mins; //to hold the duration in minutes e.g 8
} timeOfDayDataStruct;
它是理想的数据结构,还是我们能做得更好?
所需的操作是 1.设置start_time的值 2.检查给定时间是否在我们指定的时间间隔内?
答案 0 :(得分:1)
以下两个问题可能会引起关注:
我还建议如下:
类似的东西:
typedef struct _doNotDisturb {
unsigned int startTime; // Stored as offset from your start of week
unsigned int endTime; // Stored as offset from your start of week
unsigned int day; // Stored as 24*3600 seconds from your start of week
} doNotDisturb;
然后您可以将时间与:
进行比较if ((currentTime > (doNotDisturb.day + doNotDisturb.startTime)) && (currentTime < (doNotDisturb.day + doNotDisturb.endTime)) {
// Do not disturb
}
currentTime
将被引用回到您的周开始时间。
您也可以使用time_t
代替您自己的引用时间,这样您就可以在特定日期提供DND,但这可能超出了您的应用范围。