【发布时间】:2016-05-18 21:02:11
【问题描述】:
我有一些任务要编写一个比较两个日期并返回中间天数的 C 程序。
问题是,变量的标识符应该是 time.h 库中的一个,所以我不能对这两个日期使用字符串或整数。 我知道 time.h 中有变量的 time_t 标识符,但是我如何继续询问用户输入该类型的变量?我不知道应该为这种类型在 printf 或 scanf 中添加什么。另外,有什么方法可以检查用户输入是否有效?
为了比较这两者,我想我应该使用同样包含在 time.h 中的 difftime() 函数,但话又说回来,我不确定。我在某处读到它以秒为单位显示差异,不确定该来源是否合法,但我真的不需要。我需要几天,因为我正在处理日期。
网上没有太多关于这个的资料,这就是我寻求帮助的原因。提前致谢!
【问题讨论】:
-
您可以选择任何您希望用户输入日期的格式,只要您可以将这些输入转换为您计划使用的
time.h函数理解的时间表示。无论如何,用户都不应该输入time_t值,因为它们作为日期表示对用户来说是不直观的。顺便说一句,您只需阅读time.h标头即可了解time_t的基本类型是什么,以确定如果您仍然想走那条路,则使用scanf格式。 -
看起来大多数值都是
ints,scanf(%d)为:pubs.opengroup.org/onlinepubs/007908775/xsh/time.h.html。time_t不是指定类型,因此您必须找到适合您系统的类型:stackoverflow.com/questions/471248/… -
稍加注意,您可以使用
mktime(),也许还可以使用strftime()——如果您有一个POSIX-ish系统,也许还可以使用strptime(),但是strptime()使用起来有点棘手(但是大多数与日期相关的事情都有点棘手)。
标签: c date comparison time.h