def onDecrMonth(self, event): h, mi, s = util.decToDeg(self.t) yt, mt = util.decrMonth(self.y+self.cnt, self.m) tim = chart.Time(yt, mt, self.d, h, mi, s, self.chart.time.bc, self.chart.time.cal, self.chart.time.zt, self.chart.time.plus, self.chart.time.zh, self.chart.time.zm, self.chart.time.daylightsaving, self.chart.place, False) if tim.jd > self.chart.time.jd: y, self.m = util.decrMonth(self.y+self.cnt, self.m) if y != self.y+self.cnt: self.cnt -=1 self.show(self.y, self.m, self.d, self.t, self.cnt)
def onDecrMonth(self, event): y, m = util.decrMonth(self.chart.time.origyear, self.chart.time.origmonth) self.show(y, m, self.chart.time.origday, self.chart.time.hour, self.chart.time.minute, self.chart.time.second)
def compute(self, typ, by, bm, bd, chrt): if typ == Revolutions.SOLAR: year = by if bm > chrt.time.month or (bm == chrt.time.month and bd > chrt.time.day): year+= 1 month = chrt.time.month day = chrt.time.day trans = transits.Transits() trans.month(year, month, chrt, astrology.SE_SUN) # if not found => checking previous or next month if len(trans.transits) == 0: if day < 4: year, month = util.decrMonth(year, month) else: year, month = util.incrMonth(year, month) trans = transits.Transits() trans.month(year, month, chrt, astrology.SE_SUN) if len(trans.transits) > 0: self.createRevolution(year, month, trans) return True return False elif typ == Revolutions.LUNAR: trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_MOON) if len(trans.transits) > 0: second = False if bd > trans.transits[0].day: # There can be more than one lunar in a month!! if len(trans.transits) > 1: if bd > trans.transits[1].day: by, bm = util.incrMonth(by, bm) trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_MOON) else: second = True else: by, bm = util.incrMonth(by, bm) trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_MOON) if len(trans.transits) > 0: if second: self.createRevolution(by, bm, trans, 1) else: self.createRevolution(by, bm, trans) return True return False elif typ == Revolutions.MERCURY: for i in range(14): trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_MERCURY) if len(trans.transits) > 0: if not (i == 0 and bd > trans.transits[0].day): self.createRevolution(by, bm, trans) return True by, bm = util.incrMonth(by, bm) return False elif typ == Revolutions.VENUS: for i in range(16): trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_VENUS) if len(trans.transits) > 0: if not (i == 0 and bd > trans.transits[0].day): self.createRevolution(by, bm, trans) return True by, bm = util.incrMonth(by, bm) return False elif typ == Revolutions.MARS: for i in range(26): trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_MARS) if len(trans.transits) > 0: if not (i == 0 and bd > trans.transits[0].day): self.createRevolution(by, bm, trans) return True by, bm = util.incrMonth(by, bm) return False elif typ == Revolutions.JUPITER: for i in range(12*12): trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_JUPITER) if len(trans.transits) > 0: if not (i == 0 and bd > trans.transits[0].day): self.createRevolution(by, bm, trans) return True by, bm = util.incrMonth(by, bm) return False elif typ == Revolutions.SATURN: for i in range(30*12): trans = transits.Transits() trans.month(by, bm, chrt, astrology.SE_SATURN) if len(trans.transits) > 0: if not (i == 0 and bd > trans.transits[0].day): self.createRevolution(by, bm, trans) return True by, bm = util.incrMonth(by, bm) return False return False