def _analemma_suns(self):
for h in xrange(<NUM_LIT:0>, <NUM_LIT>):<EOL><INDENT>if self._analemma_position(h) < <NUM_LIT:0>:<EOL><INDENT>continue<EOL><DEDENT>elif self._analemma_position(h) == <NUM_LIT:0>:<EOL><INDENT>chours = []<EOL>prevhour = self.latitude <= <NUM_LIT:0><EOL>num_of_days = <NUM_LIT> if not self.is_leap_year else <NUM_LIT> + <NUM_LIT><EOL>for hoy in xrange(h, num_of_days, <NUM_LIT>):<EOL><INDENT>thishour = self.calculate_sun_from_hoy(hoy).is_during_day<EOL>if thishour != prevhour:<EOL><INDENT>if not thishour:<EOL><INDENT>hoy -= <NUM_LIT><EOL><DEDENT>dt = DateTime.from_hoy(hoy, self.is_leap_year)<EOL>chours.append((dt.month, dt.day, dt.hour))<EOL><DEDENT>prevhour = thishour<EOL><DEDENT>tt = []<EOL>for hcount in range(int(len(chours) / <NUM_LIT:2>)):<EOL><INDENT>st = chours[<NUM_LIT:2> * hcount]<EOL>en = chours[<NUM_LIT:2> * hcount + <NUM_LIT:1>]<EOL>if self.latitude >= <NUM_LIT:0>:<EOL><INDENT>tt = [self.calculate_sun(*st)] +[self.calculate_sun(st[<NUM_LIT:0>], d, h)<EOL>for d in xrange(st[<NUM_LIT:1>] + <NUM_LIT:1>, <NUM_LIT>, <NUM_LIT:7>)] +[self.calculate_sun(m, d, h)<EOL>for m in xrange(st[<NUM_LIT:0>] + <NUM_LIT:1>, en[<NUM_LIT:0>])<EOL>for d in xrange(<NUM_LIT:3>, <NUM_LIT>, <NUM_LIT:7>)] +[self.calculate_sun(en[<NUM_LIT:0>], d, h)<EOL>for d in xrange(<NUM_LIT:3>, en[<NUM_LIT:1>], <NUM_LIT:7>)] +[self.calculate_sun(*en)]<EOL><DEDENT>else:<EOL><INDENT>tt = [self.calculate_sun(*en)] +[self.calculate_sun(en[<NUM_LIT:0>], d, h)<EOL>for d in xrange(en[<NUM_LIT:1>] + <NUM_LIT:1>, <NUM_LIT>, <NUM_LIT:7>)] +[self.calculate_sun(m, d, h) for m in xrange(en[<NUM_LIT:0>] +<EOL><NUM_LIT:1>, <NUM_LIT>)<EOL>for d in xrange(<NUM_LIT:3>, <NUM_LIT>, <NUM_LIT:7>)] +[self.calculate_sun(m, d, h) for m in xrange(<NUM_LIT:1>, st[<NUM_LIT:0>])<EOL>for d in xrange(<NUM_LIT:3>, <NUM_LIT>, <NUM_LIT:7>)] +[self.calculate_sun(st[<NUM_LIT:0>], d, h)<EOL>for d in xrange(<NUM_LIT:3>, st[<NUM_LIT:1>], <NUM_LIT:7>)] +[self.calculate_sun(*st)]<EOL><DEDENT>yield tt<EOL><DEDENT><DEDENT>else:<EOL><INDENT>yield tuple(self.calculate_sun((m % <NUM_LIT:12>) + <NUM_LIT:1>, d, h)<EOL>for m in xrange(<NUM_LIT:0>, <NUM_LIT>) for d in (<NUM_LIT:7>, <NUM_LIT>, <NUM_LIT>))[:-<NUM_LIT:2>]<EOL><DEDENT><DEDENT>
Calculate times that should be used for drawing analemma_curves.

        Returns:
            A list of list of analemma suns.