#date generator functions d5 = gregorian.next_weekday(today, date_time.Sunday) #calculate Sunday following d4 print 'd5: ', to_simple_string(d5) #US labor day is first Monday in Sept first = gregorian.nth_day_of_the_week_in_month.first labor_day = gregorian.nth_day_of_the_week_in_month(first, date_time.Monday, date_time.Sep) #calculate a specific date for 2004 from functor print 'labor day 2004: ', to_simple_string(labor_day.get_date(2004)) #Time programming: d = gregorian.date(2002, date_time.Feb, 1) #an arbitrary date t1 = posix_time.ptime(d, posix_time.hours(5) + posix_time.millisec(100)) #date + time of day offset print 't1: ', to_simple_string(t1) t2 = t1 - posix_time.minutes(4) + posix_time.seconds(2) print 't2: ', to_simple_string(t2) now = posix_time.second_clock.local_time() #use the clock print 'now: ', to_simple_string(now) today = now.date() #Get the date part out of the time print 'today: ', to_simple_string(today) tomorrow = today + gregorian.date_duration(1) print 'tomorrow: ', to_simple_string(tomorrow) #Local time programming:
def test_duration( self ): td0 = posix_time.time_duration() self.failUnless( posix_time.time_duration().ticks() == 0) td1 = posix_time.time_duration(1,25,0) td3 = posix_time.time_duration(td1.hours(),td1.minutes(),td1.seconds()) self.failUnless( td1 == td3) td1 = -td1 td3 = posix_time.time_duration(td1.hours(),td1.minutes(),td1.seconds()) self.failUnless( td1 == td3) t_1 = posix_time.time_duration(0,1,40) t_2 = posix_time.time_duration(0,1,41) self.failUnless( not ( t_2 < t_2 ) ) self.failUnless( t_1 == t_1) self.failUnless( t_1 >= t_1) self.failUnless( t_2 >= t_1) self.failUnless( t_2 <= t_2) self.failUnless( t_2 > t_1) self.failUnless( not (t_1 > t_2)) t_3 = posix_time.time_duration(0,1,41) self.failUnless( t_2 == t_3) t_4 = posix_time.time_duration(0,1,41) self.failUnless( t_2 == t_4) t_5 = posix_time.time_duration(1,30,20,10) t_5 /= 2 self.failUnless( t_5.hours() == 0 and t_5.minutes() == 45 and t_5.seconds() == 10 and t_5.fractional_seconds() == 5) t_5 = posix_time.time_duration(3,15,8,0) / 2 self.failUnless( t_5 == posix_time.time_duration(1,37,34,0) ) td = posix_time.hours( 5 ) td *= 5 self.failUnless( td == posix_time.time_duration( 25, 0,0,0 ) ) t_5 = t_2 + t_1 self.failUnless( t_5 == posix_time.time_duration(0,3,21) ) td_a = posix_time.time_duration(5,5,5,5) td_b = posix_time.time_duration(4,4,4,4) td_c = posix_time.time_duration(2,2,2,2) td_a += td_b self.failUnless( td_a == posix_time.time_duration(9,9,9,9) ) td_d = td_b - td_c self.failUnless( td_d == posix_time.time_duration(2,2,2,2) ) td_d -= td_b self.failUnless( td_d == td_c - td_b) utd = posix_time.time_duration(1,2,3,4) utd2 = -utd self.failUnless( utd2.hours() == -1 and utd2.minutes() == -2 and utd2.seconds() == -3 and utd2.fractional_seconds() == -4 ) utd2 = -posix_time.hours(5) self.failUnless( utd2.hours() == -5) utd2 = -utd2 self.failUnless( utd2.hours() == 5) t_6 = posix_time.time_duration(5,4,3) self.failUnless( t_6.hours() == 5) self.failUnless( t_6.minutes() == 4) self.failUnless( t_6.seconds() == 3) self.failUnless( t_6.total_seconds() == 18243) tenhours = posix_time.hours(10) fivemin = posix_time.minutes(5) t7 = posix_time.time_duration(1,2,3) + tenhours + fivemin self.failUnless( t7 == posix_time.time_duration(11,7,3)) t8 = tenhours + posix_time.time_duration(1,2,3) + fivemin self.failUnless(t8 == posix_time.time_duration(11,7,3)) if posix_time.time_duration.resolution() >= date_time.micro: t_9 = posix_time.time_duration(5,4,3,9876) self.failUnless( t_9.hours() == 5) self.failUnless( t_9.minutes() == 4) self.failUnless( t_9.seconds() == 3) self.failUnless( t_9.fractional_seconds() == 9876) self.failUnless( t_9.total_seconds() == 18243) if posix_time.time_duration.resolution() >= date_time.tenth: t_10 = posix_time.time_duration(5,4,3,9) self.failUnless( t_10.hours() == 5) self.failUnless( t_10.minutes() == 4) self.failUnless( t_10.seconds() == 3) self.failUnless( t_10.fractional_seconds() == 9) self.failUnless( t_10.total_seconds() == 18243) if posix_time.time_duration.resolution() >= date_time.milli: ms = posix_time.millisec(9) if posix_time.time_duration.resolution() == date_time.nano: self.failUnless( ms.fractional_seconds() == 9000000) self.failUnless( ms.total_seconds() == 0) self.failUnless( ms.total_milliseconds() == 9) self.failUnless( posix_time.time_duration.ticks_per_second() == 1000000000) else: self.failUnless( ms.fractional_seconds() == 9000) self.failUnless( ms.total_seconds() == 0) self.failUnless( ms.total_milliseconds() == 9) if hasattr( posix_time, 'nanoseconds' ): if posix_time.time_duration.resolution() >= date_time.nano: ns = posix_time.nanosec(9) self.failUnless( ns.fractional_seconds() == 9) self.failUnless( ns.total_nanoseconds() == 9) self.failUnless( ns.total_microseconds() == 0) ns18 = ns + ns self.failUnless( ns18.fractional_seconds() == 18) ns2 = posix_time.nanosec(1000000000) self.failUnless( ns2 == seconds(1)) self.failUnless( ns2.total_seconds() == 1) self.failUnless( (nanosec(3)/2) == nanosec(1)) self.failUnless( nanosec(3)*1000 == microsec(3)) t_11 = posix_time.time_duration(3600,0,0) self.failUnless( t_11.hours() == 3600) self.failUnless( t_11.total_seconds() == 12960000) td_12 = posix_time.time_duration(1,2,3,10) self.failUnless( td_12.total_seconds() == 3723) self.failUnless( posix_time.hours(2)/2 == posix_time.hours(1)) self.failUnless( posix_time.hours(3)/2 == posix_time.minutes(90)) self.failUnless( posix_time.time_duration(3,0,0)*2 == posix_time.hours(6)) self.failUnless( posix_time.hours(3600)*1000 == posix_time.hours(3600000)) pi_dur = posix_time.time_duration(date_time.pos_infin) ni_dur = posix_time.time_duration(date_time.neg_infin) ndt_dur = posix_time.time_duration(date_time.not_a_date_time) self.failUnless( pi_dur + ni_dur == ndt_dur) self.failUnless( pi_dur / 3 == pi_dur) self.failUnless( pi_dur + td_12 == pi_dur) self.failUnless( pi_dur - td_12 == pi_dur) self.failUnless( -pi_dur == ni_dur) self.failUnless( ni_dur < pi_dur) self.failUnless( ni_dur < td_12) self.failUnless( pi_dur > td_12) self.failUnless( to_simple_string(pi_dur)=="+infinity") self.failUnless( to_simple_string(ni_dur)=="-infinity") self.failUnless( to_simple_string(ndt_dur)=="not-a-date-time") t1 = posix_time.ptime( gregorian.date(2001,7,14)) t2 = posix_time.ptime( gregorian.date(2002,7,14)) self.failUnless( 365*24 == (t2-t1).hours()) self.failUnless( 365*24*3600 == (t2-t1).total_seconds()) self.failUnless( posix_time.seconds(1).total_milliseconds() == 1000) self.failUnless( posix_time.seconds(1).total_microseconds() == 1000000) self.failUnless( posix_time.seconds(1).total_nanoseconds() == 1000000000) self.failUnless( posix_time.hours(1).total_milliseconds() == 3600*1000) tms = 3600*1000000*1001 self.failUnless( posix_time.hours(1001).total_microseconds() == tms) tms = 3600*365*24*1000 self.failUnless( (t2-t1).total_milliseconds() == tms) tms = 3600*365*24*1000000000 self.failUnless( (t2-t1).total_nanoseconds() == tms) print posix_time.microseconds(25).ticks()/posix_time.time_duration.ticks_per_second()
pass # date generator functions d5 = gregorian.next_weekday(today, date_time.Sunday) # calculate Sunday following d4 print "d5: ", to_simple_string(d5) # US labor day is first Monday in Sept first = gregorian.nth_day_of_the_week_in_month.first labor_day = gregorian.nth_day_of_the_week_in_month(first, date_time.Monday, date_time.Sep) # calculate a specific date for 2004 from functor print "labor day 2004: ", to_simple_string(labor_day.get_date(2004)) # Time programming: d = gregorian.date(2002, date_time.Feb, 1) # an arbitrary date t1 = posix_time.ptime(d, posix_time.hours(5) + posix_time.millisec(100)) # date + time of day offset print "t1: ", to_simple_string(t1) t2 = t1 - posix_time.minutes(4) + posix_time.seconds(2) print "t2: ", to_simple_string(t2) now = posix_time.second_clock.local_time() # use the clock print "now: ", to_simple_string(now) today = now.date() # Get the date part out of the time print "today: ", to_simple_string(today) tomorrow = today + gregorian.date_duration(1) print "tomorrow: ", to_simple_string(tomorrow) # Local time programming:
def test_duration(self): td0 = posix_time.time_duration() self.failUnless(posix_time.time_duration().ticks() == 0) td1 = posix_time.time_duration(1, 25, 0) td3 = posix_time.time_duration(td1.hours(), td1.minutes(), td1.seconds()) self.failUnless(td1 == td3) td1 = -td1 td3 = posix_time.time_duration(td1.hours(), td1.minutes(), td1.seconds()) self.failUnless(td1 == td3) t_1 = posix_time.time_duration(0, 1, 40) t_2 = posix_time.time_duration(0, 1, 41) self.failUnless(not (t_2 < t_2)) self.failUnless(t_1 == t_1) self.failUnless(t_1 >= t_1) self.failUnless(t_2 >= t_1) self.failUnless(t_2 <= t_2) self.failUnless(t_2 > t_1) self.failUnless(not (t_1 > t_2)) t_3 = posix_time.time_duration(0, 1, 41) self.failUnless(t_2 == t_3) t_4 = posix_time.time_duration(0, 1, 41) self.failUnless(t_2 == t_4) t_5 = posix_time.time_duration(1, 30, 20, 10) t_5 /= 2 self.failUnless(t_5.hours() == 0 and t_5.minutes() == 45 and t_5.seconds() == 10 and t_5.fractional_seconds() == 5) t_5 = posix_time.time_duration(3, 15, 8, 0) / 2 self.failUnless(t_5 == posix_time.time_duration(1, 37, 34, 0)) td = posix_time.hours(5) td *= 5 self.failUnless(td == posix_time.time_duration(25, 0, 0, 0)) t_5 = t_2 + t_1 self.failUnless(t_5 == posix_time.time_duration(0, 3, 21)) td_a = posix_time.time_duration(5, 5, 5, 5) td_b = posix_time.time_duration(4, 4, 4, 4) td_c = posix_time.time_duration(2, 2, 2, 2) td_a += td_b self.failUnless(td_a == posix_time.time_duration(9, 9, 9, 9)) td_d = td_b - td_c self.failUnless(td_d == posix_time.time_duration(2, 2, 2, 2)) td_d -= td_b self.failUnless(td_d == td_c - td_b) utd = posix_time.time_duration(1, 2, 3, 4) utd2 = -utd self.failUnless(utd2.hours() == -1 and utd2.minutes() == -2 and utd2.seconds() == -3 and utd2.fractional_seconds() == -4) utd2 = -posix_time.hours(5) self.failUnless(utd2.hours() == -5) utd2 = -utd2 self.failUnless(utd2.hours() == 5) t_6 = posix_time.time_duration(5, 4, 3) self.failUnless(t_6.hours() == 5) self.failUnless(t_6.minutes() == 4) self.failUnless(t_6.seconds() == 3) self.failUnless(t_6.total_seconds() == 18243) tenhours = posix_time.hours(10) fivemin = posix_time.minutes(5) t7 = posix_time.time_duration(1, 2, 3) + tenhours + fivemin self.failUnless(t7 == posix_time.time_duration(11, 7, 3)) t8 = tenhours + posix_time.time_duration(1, 2, 3) + fivemin self.failUnless(t8 == posix_time.time_duration(11, 7, 3)) if posix_time.time_duration.resolution() >= date_time.micro: t_9 = posix_time.time_duration(5, 4, 3, 9876) self.failUnless(t_9.hours() == 5) self.failUnless(t_9.minutes() == 4) self.failUnless(t_9.seconds() == 3) self.failUnless(t_9.fractional_seconds() == 9876) self.failUnless(t_9.total_seconds() == 18243) if posix_time.time_duration.resolution() >= date_time.tenth: t_10 = posix_time.time_duration(5, 4, 3, 9) self.failUnless(t_10.hours() == 5) self.failUnless(t_10.minutes() == 4) self.failUnless(t_10.seconds() == 3) self.failUnless(t_10.fractional_seconds() == 9) self.failUnless(t_10.total_seconds() == 18243) if posix_time.time_duration.resolution() >= date_time.milli: ms = posix_time.millisec(9) if posix_time.time_duration.resolution() == date_time.nano: self.failUnless(ms.fractional_seconds() == 9000000) self.failUnless(ms.total_seconds() == 0) self.failUnless(ms.total_milliseconds() == 9) self.failUnless( posix_time.time_duration.ticks_per_second() == 1000000000) else: self.failUnless(ms.fractional_seconds() == 9000) self.failUnless(ms.total_seconds() == 0) self.failUnless(ms.total_milliseconds() == 9) if hasattr(posix_time, 'nanoseconds'): if posix_time.time_duration.resolution() >= date_time.nano: ns = posix_time.nanosec(9) self.failUnless(ns.fractional_seconds() == 9) self.failUnless(ns.total_nanoseconds() == 9) self.failUnless(ns.total_microseconds() == 0) ns18 = ns + ns self.failUnless(ns18.fractional_seconds() == 18) ns2 = posix_time.nanosec(1000000000) self.failUnless(ns2 == seconds(1)) self.failUnless(ns2.total_seconds() == 1) self.failUnless((nanosec(3) / 2) == nanosec(1)) self.failUnless(nanosec(3) * 1000 == microsec(3)) t_11 = posix_time.time_duration(3600, 0, 0) self.failUnless(t_11.hours() == 3600) self.failUnless(t_11.total_seconds() == 12960000) td_12 = posix_time.time_duration(1, 2, 3, 10) self.failUnless(td_12.total_seconds() == 3723) self.failUnless(posix_time.hours(2) / 2 == posix_time.hours(1)) self.failUnless(posix_time.hours(3) / 2 == posix_time.minutes(90)) self.failUnless( posix_time.time_duration(3, 0, 0) * 2 == posix_time.hours(6)) self.failUnless( posix_time.hours(3600) * 1000 == posix_time.hours(3600000)) pi_dur = posix_time.time_duration(date_time.pos_infin) ni_dur = posix_time.time_duration(date_time.neg_infin) ndt_dur = posix_time.time_duration(date_time.not_a_date_time) self.failUnless(pi_dur + ni_dur == ndt_dur) self.failUnless(pi_dur / 3 == pi_dur) self.failUnless(pi_dur + td_12 == pi_dur) self.failUnless(pi_dur - td_12 == pi_dur) self.failUnless(-pi_dur == ni_dur) self.failUnless(ni_dur < pi_dur) self.failUnless(ni_dur < td_12) self.failUnless(pi_dur > td_12) self.failUnless(to_simple_string(pi_dur) == "+infinity") self.failUnless(to_simple_string(ni_dur) == "-infinity") self.failUnless(to_simple_string(ndt_dur) == "not-a-date-time") t1 = posix_time.ptime(gregorian.date(2001, 7, 14)) t2 = posix_time.ptime(gregorian.date(2002, 7, 14)) self.failUnless(365 * 24 == (t2 - t1).hours()) self.failUnless(365 * 24 * 3600 == (t2 - t1).total_seconds()) self.failUnless(posix_time.seconds(1).total_milliseconds() == 1000) self.failUnless(posix_time.seconds(1).total_microseconds() == 1000000) self.failUnless( posix_time.seconds(1).total_nanoseconds() == 1000000000) self.failUnless( posix_time.hours(1).total_milliseconds() == 3600 * 1000) tms = 3600 * 1000000 * 1001 self.failUnless(posix_time.hours(1001).total_microseconds() == tms) tms = 3600 * 365 * 24 * 1000 self.failUnless((t2 - t1).total_milliseconds() == tms) tms = 3600 * 365 * 24 * 1000000000 self.failUnless((t2 - t1).total_nanoseconds() == tms) print posix_time.microseconds( 25).ticks() / posix_time.time_duration.ticks_per_second()