Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查日期和时间是否重叠 int CompareDatesDate\u date1,Date\u date2 { 字符*日期1,*日期2; int res=0; date1=ConvertDateToString_date1; date2=转换日期到字符串_date2; res=strcmpdate2,date1; 免费日期1; freedate2; 返回res; }_C - Fatal编程技术网

检查日期和时间是否重叠 int CompareDatesDate\u date1,Date\u date2 { 字符*日期1,*日期2; int res=0; date1=ConvertDateToString_date1; date2=转换日期到字符串_date2; res=strcmpdate2,date1; 免费日期1; freedate2; 返回res; }

检查日期和时间是否重叠 int CompareDatesDate\u date1,Date\u date2 { 字符*日期1,*日期2; int res=0; date1=ConvertDateToString_date1; date2=转换日期到字符串_date2; res=strcmpdate2,date1; 免费日期1; freedate2; 返回res; },c,C,我有一个包含日期的结构数组,类型为3个整数dd/mm/yy,以及开始时间和结束时间 如果我想添加另一个会议,我需要检查是否与另一个会议没有重叠-我的意思是按日期和时间检查 当我使用上面的函数时,它有bug并且不能很好地工作。比较日期的最有效方法是什么?如果日期相等,还可以比较时间 有什么功能可以帮我做吗?如果有一种方法可以比较日期字符串,那也没关系。您最好比较给定日期结构的每个int成员,而不是转换为字符串然后比较它们。因此,假设您的日期结构定义如下: 类型定义结构{ 国际日; 整月; 国际年;

我有一个包含日期的结构数组,类型为3个整数dd/mm/yy,以及开始时间和结束时间

如果我想添加另一个会议,我需要检查是否与另一个会议没有重叠-我的意思是按日期和时间检查

当我使用上面的函数时,它有bug并且不能很好地工作。比较日期的最有效方法是什么?如果日期相等,还可以比较时间


有什么功能可以帮我做吗?如果有一种方法可以比较日期字符串,那也没关系。

您最好比较给定日期结构的每个int成员,而不是转换为字符串然后比较它们。因此,假设您的日期结构定义如下:

类型定义结构{ 国际日; 整月; 国际年; }日期; 您可以将其用作比较函数:

int CompareDatesDate\u date1,Date\u date2 { //首先,比较这两年。。。 如果_date1.year<_date2.year return-1; 否则,如果_date1.year>_date2.year return 1; //年是相等的:比较月。。。 如果_date1.month<_date2.month return-1; 否则,如果_date1.month>_date2.month返回1; //年和月相等:比较天。。。 如果_date1.day<_date2.day返回-1; 否则,如果_date1.day>_date2.day返回1; //三者都相等:返回零。。。 返回0; } 这可能看起来有点“笨拙”,但它几乎肯定比创建两个字符串、格式化它们然后释放这些字符串更有效


请随时要求进一步的澄清和/或解释。

您最好比较给定日期结构的每个int成员,而不是转换为字符串然后比较它们。因此,假设您的日期结构定义如下:

类型定义结构{ 国际日; 整月; 国际年; }日期; 您可以将其用作比较函数:

int CompareDatesDate\u date1,Date\u date2 { //首先,比较这两年。。。 如果_date1.year<_date2.year return-1; 否则,如果_date1.year>_date2.year return 1; //年是相等的:比较月。。。 如果_date1.month<_date2.month return-1; 否则,如果_date1.month>_date2.month返回1; //年和月相等:比较天。。。 如果_date1.day<_date2.day返回-1; 否则,如果_date1.day>_date2.day返回1; //三者都相等:返回零。。。 返回0; } 这可能看起来有点“笨拙”,但它几乎肯定比创建两个字符串、格式化它们然后释放这些字符串更有效


请随时要求进一步的澄清和/或解释。

UNIX/C中的一个微妙亮点是将时间定义为自商定的纪元(1970年1月1日)起的秒数。有点不太妙的是,UNIX定义将持续50年,并且距离造成重大破坏还不到20年

除此之外,拥有一个单调递增的计数器的想法,使得任何两个日期、时间对都可以合理地进行比较,这是计算机科学的一大进步。在计算机历史的大部分时间里,它的实践者对日期的概念和目的感到特别困惑。这个简单的定义给了他们一些可以研究的东西

积分表示法不仅使确定哪一个日期、时间先于另一个日期、时间变得容易;它还允许在之前、之后、重叠等方面比较[date.time,date.time]的范围


因此,与其过多地担心日期是如何工作的,你的职责是什么,以及所有这些麻烦,不如把它们转换成数字,比较它们并报告结果。就像一个优秀的小计算机人。

UNIX/C中的一个微妙的亮点是,将时间定义为自约定的纪元(1970年1月1日)以来的秒数。有点不太妙的是,UNIX定义将持续50年,并且距离造成重大破坏还不到20年

除此之外,拥有一个单调递增的计数器的想法,使得任何两个日期、时间对都可以合理地进行比较,这是计算机科学的一大进步。在计算机历史的大部分时间里,它的实践者对日期的概念和目的感到特别困惑。这个简单的定义给了他们一些可以研究的东西

积分表示法不仅使确定哪一个日期、时间先于另一个日期、时间变得容易;它还允许在之前、之后、重叠等方面比较[date.time,date.time]的范围

所以,与其过分担心约会应该如何进行,你的责任是什么,等等
麻烦的是,把它们转换成数字,比较它们并报告结果。就像一个优秀的小电脑人。

是的,我试着先比较一年,然后比较一个月,然后比较一天,但看起来有点凌乱和冗长。我正在尝试编写更高效的代码。谢谢。或者您可能希望将其转换为整数,例如UNIX时间戳,并将其进行比较。有时,简单甚至“笨拙”的代码是最好的答案:如果你想让其他人使用你的代码,可读性是很重要的……我见过许多所谓的“优秀”程序员因为试图使用聪明/诡诈/神秘的编码风格而被淘汰!顺便说一句,你不应该以这样的开头定义标识符;这些都是保留给实现使用的,可能会在用户程序中造成问题。是的,我试着先比较一年,然后比较一个月,然后比较一天,但看起来有点凌乱和冗长。我正在尝试编写更高效的代码。谢谢。或者您可能希望将其转换为整数,例如UNIX时间戳,并将其进行比较。有时,简单甚至“笨拙”的代码是最好的答案:如果你想让其他人使用你的代码,可读性是很重要的……我见过许多所谓的“优秀”程序员因为试图使用聪明/诡诈/神秘的编码风格而被淘汰!顺便说一句,你不应该以这样的开头定义标识符;这些是保留供实现使用的,可能会导致用户程序出现问题。仅供参考,请参阅上的这篇Wikipedia文章!仅供参考,请参阅维基百科网站上的这篇文章!