日期与用户输入日期和文件中的日期进行比较

时间:2013-10-22 11:23:26

标签: c

我需要一些帮助来比较日期。该程序在用户输入输入日期时起作用,并将其与日期的文本文档文件进行比较。如果日期在用户输入日期和文档日期之间,那么它将被执行..我想在这种情况下使用开关案例而不是if ..是否可能?

if (date_compare(tld->begin, d) > 0 && //compare user input start date with actual date.txt begin input date
        date_compare(tld->end, d) < 0) //compare user input end date with actual date.txt input date
    return 0;

1 个答案:

答案 0 :(得分:0)

我会考虑使用一些库进行日期算术和比较。为严格的生产代码正确编码可能非常棘手,特别是对于语言环境。从闰年开始,通过闰秒,进入珍珠,如最重要的问题之一Why is subtracting these two times (in 1927) giving a strange result?

对于简单的初学者,我建议使用difftime实用程序中的标准库chrono

您展示的if对我来说似乎很好,您可以轻松地将difftimedate_compare一起包裹。

但有两个问题。

date_compare的操作数顺序是什么?对于difftime,签名为double difftime( time_t time_end, time_t time_beg );,这似乎与您使用的签名相反。否则,该陈述在逻辑上总是错误的。

此外,您似乎还要检查d是否在(tld->start; tld->begin)内,如果是,请退出0。换句话说,当文件符合日期间隔时,您返回0,我希望这是预期的。