0

I'm trying go calculate difference between two dates, for homework. Only problem is we can't use anything outside of for while if loops.. which is driving me crazy. I tried writing the sudocode for it and it seems simple enough but when I start sitting down and coding I get lost when the months start coming in.(excluding leap years)

Say the start dates is July 3 2015 going to March 5 2016.

I was originaly going to add days until the current month is finish and pretty much calculate everything from days. But I get kinda lost when I start including different days for each month.

4

2 回答 2

0

第 1 步:编写一个函数将日期转换为“自 epoc 以来的天数”,其中考虑了闰年等因素。epoc 可能是“1/1/1970”。使用查找表很容易 - 一个用于“前几年的天数”,其中包括闰年标志,另一个用于非闰年的“前几个月的天数”(如果前一个表中的闰年标志已设置并且月份在二月之后,您添加一天)。然后,您将添加“前几年的天数”、“前几个月的天数”和当月的某天以获得“自 epoc 以来的天数”。

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

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

于 2011-04-23T07:43:01.407 回答
0

计算你在那个月能走多远的想法可能是

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

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

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

于 2011-04-23T06:56:04.573 回答