2012-11-23 80 views
1

我必须写numDays(otherdate)函数返回的天数,因为这日期和OtherDate之间的正整数。公历日期,NUMDAYS功能

此功能属于类Date ADT是初始化为给定的阳历日子。格式为self._date(month,day,year)格式。它必须两者之间的差异返回dates.like 9月25日和10月6日=有12天差异

def numDays(self,otherDate): 
     print("Enter a date:") 
     y=int(input("Year:")) 
     m=int(input("Month:")) 
     d=int(input("Day:")) 
     today=self._date(y,m,d) 
     diff=today-otherDate 
     NoOfDays=diff.days 
     print("The Number of day between today and Julian date is %s"%NoOfDays) 

写这样的,但我知道有一些失误。

+0

看起来你要我们写一些代码给你。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。证明这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出和实际获得的输出(控制台输出,堆栈跟踪,编译器错误 - 无论是适用)。您提供的细节越多,您可能会收到的答案就越多。 –

+0

@MartijnPieters - 我正要写些东西来达到这个效果......你是否打开这个文本文件,你可以在这里复制/粘贴:-P – mgilson

+0

@mgilson:[AutoReviewComments-Pro-forma comments为SE](http://stackapps.com/q/2116)为胜利。 –

回答

0

的问题是,你也必须提供该国并为您计算差值欧洲部分地区连州。有关详细信息,请参见http://en.wikipedia.org/wiki/Gregorian_calendar

虽然通式(这应该是很容易找到),我不认为这是正确的。

在另一边:谁在乎。人们谁也都去世很久以前;-)

+0

otherdate是应该给出的日期,我们将会发现今天和今天的差异bw – user1763124

+0

@alzaimar:我认为这两个日期都被认为是在这个问题的普通格里历中。 – martineau

+0

否,如上面所述的用户1763124。但是我知道有一个普遍接受的实现忽略了我的陈述。我只写了它来指出。 – alzaimar

0

如果两个日期datetime.date对象然后计算今天与其他日期之间的天数:

from datetime import date 

number_of_days = date.today().toordinal() - other_date.toordinal() 

它没有考虑到与时区有关的问题,它假定你错误地写了“儒略日期”。

顺便说一句,有9月25日和10月6日11之间的天数:

>>> date(2012, 10, 6).toordinal() - date(2012, 9, 25).toordinal() 
11 
>>> date(2012, 9, 26).toordinal() - date(2012, 9, 25).toordinal() 
1 
>>> date(2012, 9, 25).toordinal() - date(2012, 9, 25).toordinal() 
0 

要做到这一点,而不日期时间模块,您需要执行一些简单的算术。日历每400年重复一次,参见the algorithm

+0

确定其作品,但如何编写它没有日期时间module.is有没有办法呢? – user1763124

+0

@ user1763124:我已将链接添加到公历日历算法 – jfs