Here you go Tom. I think this is what you are looking for. There's probably a more streamlined way to implement it, but this seems to work nicely. Sorry for the VB-style variable names (grin) Hope you find it useful. -Eric. Here's the (ONLY) DTML used to test the functions: -----8<-----8<-----8<----- <dtml-call expr="REQUEST.set('d', ZopeTime('1999/11/21'))"> Here's the result of dateInNMonths on November 21, 1999 + 6 months:<br> <dtml-var expr="dateInNMonths(this(),d, 6)"> <br> -----8<-----8<-----8<----- I implemented it using two "Python Methods" as follows: -----8<-----8<-----8<----- ID: daysPerMonth Parameters: ZopeDateTime <-- Pass in a Zope Date Time object Function: if ZopeDateTime.isLeapYear(): intDaysInFebruary = 29 else: intDaysInFebruary = 28 strMonthName=ZopeDateTime.Month() dicDaysPerMonth = {'January':31,'February':intDaysInFebruary,'March':31,'April':30,'May':31,'J une':30,'July':31,'August':31,'September':30,'October':31,'November':30,'Dec ember':31} return dicDaysPerMonth.get(strMonthName, 0) -----8<-----8<-----8<----- ID: dateInNMonths Parameters: self, ZopeDateTime, Months Function: days = self.daysPerMonth(ZopeDateTime) - ZopeDateTime.day() + 1 i = 2 while i < Months: nextDate = ZopeDateTime + days days = days + self.daysPerMonth(nextDate) i = i + 1 days = days + ZopeDateTime.day() - 1 return ZopeDateTime + days -----8<-----8<-----8<----- -----Original Message----- From: Eric Walstad [mailto:Eric@Walstads.net] Sent: Tuesday, November 21, 2000 10:19 AM To: Tom Deprez Subject: RE: [Zope] Date Hi Again Tom, OK, This is an interesting one that I may need later on. I'll work on it and get back to you... -----Original Message----- From: Tom Deprez [mailto:tom.deprez@uz.kuleuven.ac.be] Sent: Tuesday, November 21, 2000 9:43 AM To: Eric@Walstads.net Subject: RE: [Zope] Date Thanks Eric, Unfortunately, although I only need to know the month and the year, I need to know the exact month. In certain circumstances the method below will give me a wrong month. Tom. At 09:29 21/11/2000 -0800, Eric Walstad wrote:
Hi Tom, I have a Python Method (or whatever they're called now) that uses the following line d = self.ZopeTime() + days So, you could do something like: d = self.ZopeTime() + (days * 30 * 6) However, not all months are 30 days so this isn't totally accurate. But, maybe it's good enough for your needs.
Hope it helps, Eric
-----Original Message----- From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of Tom Deprez Sent: Tuesday, November 21, 2000 8:38 AM To: zope@zope.org Subject: [Zope] Date
Does someone knows how to calculate the date after 6 months of a certain date?
eg ZopeTime() + 6 months?
Is there an easy formula for this? Or do I've to check myself for a new year, leap year
Tom.
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
participants (1)
-
Eric Walstad