def point_to_timedelta(self, x, y, snap=True): x /= self.scale y /= self.scale day = int(x / self.day_width) if y < 0: day += 1 minute = (day * 24 * 60) + quantize(int((y / self.hour_height) * 60), 15) return datetime.timedelta(minutes=minute)
def point_to_datetime(self, x, y, snap=True): x /= self.scale y /= self.scale hour = ((y + (- self.y_scroll_offset)) / self.hour_height) if snap: minute = quantize(hour % 1 * 60, 15) else: minute = hour % 1 * 60 date = int(self.date + (x - self.day_width) / self.day_width) ret = datetime.datetime.fromordinal(date) delta = datetime.timedelta(hours=int(hour), minutes=minute) return ret + delta