计算日期(使用有限的工具)

时间:2011-02-28 21:39:32

标签: c nested nested-loops

我正在尝试计算两个日期之间的差异,用于作业。 唯一的问题是我们不能使用外面的任何东西,如果循环..这让我发疯。我尝试为它编写sudocode并且看起来很简单但是当我开始坐下来编码时,我会在几个月开始进入时迷路。(不包括闰年)

假设开始日期是2015年7月3日到2016年3月5日。

我原本要添加几天,直到当月完成,几乎从几天开始计算所有内容。但是当我开始包括每个月的不同日子时,我有点失落。

2 个答案:

答案 0 :(得分:0)

想一想那个月你可以走多远的想法

for(day=1;day<=days_in_month(month);day++){
    counter++;
}

然后有一个days_in_month函数,它使用一些if语句返回。如果你有一些谷歌我记得看到一些好的陈述,以有效地解决这个问题 - 如果你需要包括闰年,你显然需要将年份传递给days_in_month函数。 显然你需要上面的循环嵌套其他一些。

希望这会有所帮助,祝你好运。

答案 1 :(得分:0)

步骤1:编写一个函数将日期转换为“自epoc以来的日期数”,其中考虑了闰年等事项。该epoc可能是“1/1/1970”。使用查找表很容易 - 一个用于“往年的日子”,其中包括一个闰年标志,一个用于非闰年的“前几个月”(如果是上一个表中的闰年标志)已设置,月份在2月之后,您添加一天)。然后你会添加“前几年的日子”,“前几个月的日子”以及每月的日期来获得“自epoc以来的日期数”。

步骤2:将两个日期转换为“自epoc以来的日期数”整数并减去。

注意:讲师可能希望您使用计算而不是使用查找表。在这种情况下,使用查找表使其工作,然后一次替换一个查找表。