Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Python Project 4
- # ADA
- def d(s):
- raw_input("----DEBUG----{0}".format(s))
- class Time:
- def __init__(self, h, m):
- self.hour = h
- self.minute = m
- def __str__(self):
- # return "{h}:{m}".format(h=self.hour, m=self.minute)
- return '%(hour)02d:%(minute)02d' % {"hour":self.hour, "minute":self.minute}
- def add(self, time):
- r = Time(self.hour, self.minute, self.second)
- r.hour += time.hour
- r.minute += time.minute
- if r.minute > 59:
- r.minute -= 60
- r.hour += 1
- # Do we need to roll over the hour to a day?
- # Is a concept of a day even necessary?
- return r
- def sub(self, time):
- r = Time(self.hour, self.minute, self.second)
- r.hour -= time.hour
- r.minute -= time.minute
- if r.minute < 0:
- r.minute += 60
- r.hour -= 1
- return r
- def isLaterThan(self, time):
- if self.hour >= time.hour:
- return True
- elif self.minute >= time.minute:
- return True
- return False
- def eventCompare(event1,event2):
- deltah = event1.start.hour - event2.start.hour
- if deltah == 0:
- return event1.start.minute - event2.start.minute
- else:
- return deltah
- class Event:
- def __init__(self, timeStart, timeEnd):
- self.start = timeStart
- self.end = timeEnd
- def __str__(self):
- return "{}-{}".format(str(self.start), str(self.end))
- def getLength(self):
- return self.end.sub(self.start)
- def overlaps(self, event):
- return self.end.isLaterThan(event.start)
- def getEvent(s): # returns a single Event from a string 'HH:MM-HH:MM'
- times = s.split('-') # splits it up into [HH:MM,HH:MM]
- events = [times[0].split(':'),times[1].split(':')] # splits it up into [[HH,MM],[HH,MM]]
- # it seems to like the stupid way
- for i in range(2):
- for j in range(2):
- events[i][j] = int(events[i][j])
- return Event(Time(events[0][0],events[0][1]), Time(events[1][0],events[1][1]))
- # returns a tuple of (minSleep, maxAwake, [Events])
- def input():
- (minSleep, maxAwake) = inputMinMax()
- events = list()
- imp = raw_input()
- while len(imp) != 0:
- events.append(getEvent(imp))
- imp = raw_input()
- for e in events:
- print e
- events.sort(eventCompare)
- for e in events:
- print e
- return ((minSleep, maxAwake), events)
- def inputMinMax():
- s = raw_input("'min max' := ")
- minmax = s.split()
- min = int(minmax[0])
- max = int(minmax[1])
- return (min,max)
- #################################
- t = input()
- for m in t:
- for n in m:
- print n
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement