X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=roundup%2Fdate.py;h=ef65d87f86fb7c1c099777fc8910f11f13094d26;hb=73bf8694bae43f859622944a706dc4dd441eae44;hp=60a717b7403668048ed20aa608719fc075a61372;hpb=d24a56f402674f5ba94c5169d4e2afef29d1d3b9;p=roundup.git diff --git a/roundup/date.py b/roundup/date.py index 60a717b..ef65d87 100644 --- a/roundup/date.py +++ b/roundup/date.py @@ -1,4 +1,21 @@ -# $Id: date.py,v 1.8 2001-08-05 07:46:12 richard Exp $ +# +# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) +# This module is free software, and you may redistribute it and/or modify +# under the same terms as Python, so long as this copyright message and +# disclaimer are retained in their original form. +# +# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR +# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING +# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, +# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" +# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, +# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +# +# $Id: date.py,v 1.13 2001-09-18 22:58:37 richard Exp $ import time, re, calendar @@ -54,8 +71,6 @@ class Date: >>> Date("14:25", -5) ''' - isDate = 1 - def __init__(self, spec='.', offset=0): """Construct a date given a specification and a time zone offset. @@ -99,7 +114,7 @@ class Date: 1. an interval from this date to produce another date. 2. a date from this date to produce an interval. """ - if other.isDate: + if isinstance(other, Date): # TODO this code will fall over laughing if the dates cross # leap years, phases of the moon, .... a = calendar.timegm((self.year, self.month, self.day, self.hour, @@ -222,8 +237,6 @@ class Interval: >>> Date(". + 2d") - Interval("3w") ''' - isInterval = 1 - def __init__(self, spec, sign=1): """Construct an interval given a specification.""" if type(spec) == type(''): @@ -304,14 +317,17 @@ class Interval: ''' if self.year or self.month > 2: return None - if self.month: + if self.month or self.day > 13: days = (self.month * 30) + self.day if days > 28: - return '%s months'%int(days/30) + if int(days/30) > 1: + return '%s months'%int(days/30) + else: + return '1 month' else: return '%s weeks'%int(days/7) if self.day > 7: - return '%s weeks'%self.day + return '1 week' if self.day > 1: return '%s days'%self.day if self.day == 1 or self.hour > 12: @@ -363,6 +379,24 @@ if __name__ == '__main__': # # $Log: not supported by cvs2svn $ +# Revision 1.12 2001/08/17 03:08:11 richard +# fixed prettification of intervals of 1 week +# +# Revision 1.11 2001/08/15 23:43:18 richard +# Fixed some isFooTypes that I missed. +# Refactored some code in the CGI code. +# +# Revision 1.10 2001/08/07 00:24:42 richard +# stupid typo +# +# Revision 1.9 2001/08/07 00:15:51 richard +# Added the copyright/license notice to (nearly) all files at request of +# Bizar Software. +# +# Revision 1.8 2001/08/05 07:46:12 richard +# Changed date.Date to use regular string formatting instead of strftime - +# win32 seems to have problems with %T and no hour... or something... +# # Revision 1.7 2001/08/02 00:27:04 richard # Extended the range of intervals that are pretty-printed before actual dates # are displayed.