Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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
添加到日期C的年、月和日_C_Algorithm_Date_Leap Year - Fatal编程技术网

添加到日期C的年、月和日

添加到日期C的年、月和日,c,algorithm,date,leap-year,C,Algorithm,Date,Leap Year,我正在尝试编写一个算法,输入一个日期(“2000-01-01”)和“y | m | d”,其中y是添加到原始日期的年数,m和d是月和天。该算法还需要考虑闰年。很抱歉,我没有发布任何代码,我还没有真正得到任何工作 算法也需要这样工作:如果你在11月30日之前加上三个月,你将得到明年2月28日,如果是闰年,则是29日。因此,如果您来自的月份的长度高于最终结果月份,则将取最终结果月份的最后一天 有人能给我一些关于如何写它或链接到任何有用的资源的建议吗 我希望这是有意义的,任何问题都让我知道。谢谢。你似

我正在尝试编写一个算法,输入一个日期(“2000-01-01”)和“y | m | d”,其中y是添加到原始日期的年数,m和d是月和天。该算法还需要考虑闰年。很抱歉,我没有发布任何代码,我还没有真正得到任何工作

算法也需要这样工作:如果你在11月30日之前加上三个月,你将得到明年2月28日,如果是闰年,则是29日。因此,如果您来自的月份的长度高于最终结果月份,则将取最终结果月份的最后一天

有人能给我一些关于如何写它或链接到任何有用的资源的建议吗


我希望这是有意义的,任何问题都让我知道。谢谢。

你似乎已经很好地解决了这个问题。以下是查找闰年的算法:

if year is not divisible by 4 then common year
else if year is not divisible by 100 then leap year
else if year is not divisible by 400 then common year
else leap year

您需要的大部分(如果不是全部的话)都可以在
库()中找到

特别是查找
time
struct tm
类型以及如何在这两种类型之间转换(
localtime()
gmttime()
,…)。请注意,您可以将天、小时、月等添加到
struct tm
中的字段中,并且这些字段处理正确,例如,“1月32日”变为“2月1日”

库还处理闰年

您添加3个月的方式似乎不符合常规,因此您可能需要手动检查。使用
仍然很容易


<强> >:<强>在有人抱怨“代码> <代码>是C++之前,在C中,这个库在<代码> <代码>。< /P>问题已经很清楚地指明了问题,你有什么问题?如果你在你的例子中加上3个月和1天?是三月一日吗?如果从11月28日开始再加上一个月零一天呢?如果可能的话,这是下个月的29号吗?您需要使用

strtok
strtol
解析字段并将其转换为数字。然后你只需要定义你在问题中提到的规则。