def month(self, year, month, chrt, planet = -1, pos = None):
		self.flags = astrology.SEFLG_SPEED+astrology.SEFLG_SWIEPH
		if chrt.options.topocentric:
			self.flags += astrology.SEFLG_TOPOCTR

		lastday = 1
		for day in range(1, 31):
			valid = util.checkDate(year, month, day)
			if valid:	
				lastday = day

				valid = util.checkDate(year, month, day+1)
				if valid:
					lastday = day+1
					self.day(year, month, day, chrt, planet, pos)
				else:
					break
			else:
				break

		#lastday in month-first day in next month
		time1 = chart.Time(year, month, lastday, 0, 0, 0, False, chrt.time.cal, chart.Time.GREENWICH, True, 0, 0, False, chrt.place, False)
		
		year, month = util.incrMonth(year, month)
		time2 = chart.Time(year, month, 1, 0, 0, 0, False, chrt.time.cal, chart.Time.GREENWICH, True, 0, 0, False, chrt.place, False)

		cnt = len(self.transits)

		if planet == Transits.NONE:
			self.cycle(time1, chrt, time2)
		else:
			self.cycleplanet(time1, chrt, time2, planet, pos)

		self.order(cnt)
Exemple #2
0
	def month(self, year, month, chrt, planet = -1, pos = None):
		self.flags = astrology.SEFLG_SPEED+astrology.SEFLG_SWIEPH
		if chrt.options.topocentric:
			self.flags += astrology.SEFLG_TOPOCTR

		lastday = 1
		for day in range(1, 31):
			valid = util.checkDate(year, month, day)
			if valid:
				lastday = day

				valid = util.checkDate(year, month, day+1)
				if valid:
					lastday = day+1
					self.day(year, month, day, chrt, planet, pos)
				else:
					break
			else:
				break

		#lastday in month-first day in next month
		time1 = chart.event.DateTime(year, month, lastday, 0, 0, 0, False, chrt.time.cal, chart.event.DateTime.GREENWICH, True, 0, 0, False, chrt.place, False)

		year, month = util.incrMonth(year, month)
		time2 = chart.event.DateTime(year, month, 1, 0, 0, 0, False, chrt.time.cal, chart.event.DateTime.GREENWICH, True, 0, 0, False, chrt.place, False)

		cnt = len(self.transits)

		if planet == Transits.NONE:
			self.cycle(time1, chrt, time2)
		else:
			self.cycleplanet(time1, chrt, time2, planet, pos)

		self.order(cnt)
Exemple #3
0
 def onIncrMonth(self, event):
     y, m = util.incrMonth(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
	def onIncrMonth(self, event):
		y, m = util.incrMonth(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 onIncrMonth(self, event):
		y, self.m = util.incrMonth(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)
Exemple #7
0
	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