コード例 #1
0
ファイル: test.py プロジェクト: MinjeJeon/koreanholiday
 def test_lunar_holiday_in_current_year(self):
     self.assertEqual(gong.lunarnewyearsday(),
                      LunarDate(current_year, 1, 1).toSolarDate())
     self.assertEqual(gong.buddhasbirthday(),
                      LunarDate(current_year, 4, 8).toSolarDate())
     self.assertEqual(gong.koreanthanksgiving(),
                      LunarDate(current_year, 8, 15).toSolarDate())
コード例 #2
0
    def _populate(self, year):
        # New Year's Day
        name = "New Year's Day"
        self[date(year, 1, 1)] = name

        # Chinese New Year/ Spring Festival
        name = "Chinese New Year"
        self[LunarDate(year, 1, 1).toSolarDate()] = name

        # Tomb-Sweeping Day
        name = "Tomb-Sweeping Day"
        self[date(year, 4, 4)] = name
        self[date(year, 4, 5)] = name

        # Labor Day
        name = "Labor Day"
        self[date(year, 5, 1)] = name

        # Dragon Boat Festival
        name = "Dragon Boat Festival"
        self[LunarDate(year, 5, 5).toSolarDate()] = name

        # Mid-Autumn Festival
        name = "Mid-Autumn Festival"
        self[LunarDate(year, 8, 15).toSolarDate()] = name

        # National Day
        name = "National Day"
        self[date(year, 10, 1)] = name
コード例 #3
0
 def trans_data(cls, source_data):
     _ = TrendBase.trans_data(source_data)
     _['name'] = SolarCalendar.recent(_['buy_date'])['name']
     bd = LunarDate.fromSolarDate(_['buy_date'].year, _['buy_date'].month, _['buy_date'].day)
     sd = LunarDate.fromSolarDate(_['buy_date'].year, _['buy_date'].month, _['buy_date'].day)
     _['buy_tradate'] = '{}-{:02d}-{:02d}'.format(bd.year, bd.month, bd.day)
     _['sell_tradate'] = '{}-{:02d}-{:02d}'.format(sd.year, sd.month, sd.day)
     return _
コード例 #4
0
 def test_lunar_to_solar_19550329_leap_case_check(self):
     solar_date = LunarDate.to_solar(1955, 3, 29, False)
     assert solar_date.year == 1955
     assert solar_date.month == 4
     assert solar_date.day == 21
     solar_date_leap = LunarDate.to_solar(1955, 3, 29, True)
     assert solar_date_leap.year == 1955
     assert solar_date_leap.month == 5
     assert solar_date_leap.day == 20
コード例 #5
0
 def test_lunar_to_solar_19550329_leap_case_check(self):
     solar_date = LunarDate.to_solar(1955, 3, 29, False)
     assert solar_date.year == 1955
     assert solar_date.month == 4
     assert solar_date.day == 21
     solar_date_leap = LunarDate.to_solar(1955, 3, 29, True)
     assert solar_date_leap.year == 1955
     assert solar_date_leap.month == 5
     assert solar_date_leap.day == 20
コード例 #6
0
    def test_lunar_to_solar_20150908_not_leap_month_case_check(self):
        solar_date = LunarDate.to_solar(2015, 7, 26, False)
        assert solar_date.year == 2015
        assert solar_date.month == 9
        assert solar_date.day == 8

        solar_date_leap = LunarDate.to_solar(2015, 7, 26, True)
        assert solar_date_leap.year == 2015
        assert solar_date_leap.month == 9
        assert solar_date_leap.day == 8
コード例 #7
0
 def test_lunar_19040101_from_solar_19040216_two_way(self):
     date = LunarDate.from_solar(1904, 2, 16)
     assert date.year == 1904
     assert date.month == 1
     assert date.day == 1
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1904, 1, 1, False)
     assert solar_date.year == 1904
     assert solar_date.month == 2
     assert solar_date.day == 16
コード例 #8
0
 def test_lunar_19790922_from_solar_19791111_two_way(self):
     date = LunarDate.from_solar(1979, 11, 11)
     assert date.year == 1979
     assert date.month == 9
     assert date.day == 22
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1979, 9, 22, False)
     assert solar_date.year == 1979
     assert solar_date.month == 11
     assert solar_date.day == 11
コード例 #9
0
 def test_lunar_20140930_from_solar_20141023_two_way(self):
     date = LunarDate.from_solar(2014, 10, 23)
     assert date.year == 2014
     assert date.month == 9
     assert date.day == 30
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(2014, 9, 30, False)
     assert solar_date.year == 2014
     assert solar_date.month == 10
     assert solar_date.day == 23
コード例 #10
0
 def test_lunar_19870621_from_solar_19870815_leap_two_way(self):
     date = LunarDate.from_solar(1987, 8, 15)
     assert date.year == 1987
     assert date.month == 6
     assert date.day == 21
     assert date.is_leap_month is True
     solar_date = LunarDate.to_solar(1987, 6, 21, True)
     assert solar_date.year == 1987
     assert solar_date.month == 8
     assert solar_date.day == 15
コード例 #11
0
 def test_lunar_20171025_from_solar_20171212_two_way(self):
     date = LunarDate.from_solar(2017, 12, 12)
     assert date.year == 2017
     assert date.month == 10
     assert date.day == 25
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(2017, 10, 25, False)
     assert solar_date.year == 2017
     assert solar_date.month == 12
     assert solar_date.day == 12
コード例 #12
0
 def test_lunar_19870729_from_solar_19870921_two_way(self):
     date = LunarDate.from_solar(1987, 9, 21)
     assert date.year == 1987
     assert date.month == 7
     assert date.day == 29
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1987, 7, 29, False)
     assert solar_date.year == 1987
     assert solar_date.month == 9
     assert solar_date.day == 21
コード例 #13
0
 def getNextRun(self):
     try:
         ld = self.getLunarDate()
         if datetime.date.today() < LunarDate(datetime.date.today().year,ld.month,ld.day).toSolarDate():
             ld = LunarDate(datetime.date.today().year,ld.month,ld.day)
         else:
             ld= LunarDate(datetime.date.today().year+1,ld.month,ld.day)
         return ld.toSolarDate().strftime('%m/%d/%Y')
     except ValueError:
         return "Date before 1900 or after 2050 Error"
コード例 #14
0
 def test_lunar_19551119_from_solar_19560101_two_way(self):
     date = LunarDate.from_solar(1956, 1, 1)
     assert date.year == 1955
     assert date.month == 11
     assert date.day == 19
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1955, 11, 19, False)
     assert solar_date.year == 1956
     assert solar_date.month == 1
     assert solar_date.day == 1
コード例 #15
0
    def test_lunar_to_solar_20150908_not_leap_month_case_check(self):
        solar_date = LunarDate.to_solar(2015, 7, 26, False)
        assert solar_date.year == 2015
        assert solar_date.month == 9
        assert solar_date.day == 8

        solar_date_leap = LunarDate.to_solar(2015, 7, 26, True)
        assert solar_date_leap.year == 2015
        assert solar_date_leap.month == 9
        assert solar_date_leap.day == 8
コード例 #16
0
 def test_lunar_19551119_from_solar_19560101_two_way(self):
     date = LunarDate.from_solar(1956, 1, 1)
     assert date.year == 1955
     assert date.month == 11
     assert date.day == 19
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1955, 11, 19, False)
     assert solar_date.year == 1956
     assert solar_date.month == 1
     assert solar_date.day == 1
コード例 #17
0
 def test_lunar_19870729_from_solar_19870921_two_way(self):
     date = LunarDate.from_solar(1987, 9, 21)
     assert date.year == 1987
     assert date.month == 7
     assert date.day == 29
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1987, 7, 29, False)
     assert solar_date.year == 1987
     assert solar_date.month == 9
     assert solar_date.day == 21
コード例 #18
0
 def test_lunar_19000101_from_solar_19000131_two_way(self):
     date = LunarDate.from_solar(1900, 1, 31)
     assert date.year == 1900
     assert date.month == 1
     assert date.day == 1
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1900, 1, 1, False)
     assert solar_date.year == 1900
     assert solar_date.month == 1
     assert solar_date.day == 31
コード例 #19
0
 def test_lunar_19870621_from_solar_19870815_leap_two_way(self):
     date = LunarDate.from_solar(1987, 8, 15)
     assert date.year == 1987
     assert date.month == 6
     assert date.day == 21
     assert date.is_leap_month is True
     solar_date = LunarDate.to_solar(1987, 6, 21, True)
     assert solar_date.year == 1987
     assert solar_date.month == 8
     assert solar_date.day == 15
コード例 #20
0
 def test_lunar_20171025_from_solar_20171212_two_way(self):
     date = LunarDate.from_solar(2017, 12, 12)
     assert date.year == 2017
     assert date.month == 10
     assert date.day == 25
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(2017, 10, 25, False)
     assert solar_date.year == 2017
     assert solar_date.month == 12
     assert solar_date.day == 12
コード例 #21
0
 def test_lunar_20140930_from_solar_20141023_two_way(self):
     date = LunarDate.from_solar(2014, 10, 23)
     assert date.year == 2014
     assert date.month == 9
     assert date.day == 30
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(2014, 9, 30, False)
     assert solar_date.year == 2014
     assert solar_date.month == 10
     assert solar_date.day == 23
コード例 #22
0
 def test_lunar_19790922_from_solar_19791111_two_way(self):
     date = LunarDate.from_solar(1979, 11, 11)
     assert date.year == 1979
     assert date.month == 9
     assert date.day == 22
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1979, 9, 22, False)
     assert solar_date.year == 1979
     assert solar_date.month == 11
     assert solar_date.day == 11
コード例 #23
0
 def test_lunar_19040101_from_solar_19040216_two_way(self):
     date = LunarDate.from_solar(1904, 2, 16)
     assert date.year == 1904
     assert date.month == 1
     assert date.day == 1
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1904, 1, 1, False)
     assert solar_date.year == 1904
     assert solar_date.month == 2
     assert solar_date.day == 16
コード例 #24
0
 def test_lunar_19000101_from_solar_19000131_two_way(self):
     date = LunarDate.from_solar(1900, 1, 31)
     assert date.year == 1900
     assert date.month == 1
     assert date.day == 1
     assert date.is_leap_month is False
     solar_date = LunarDate.to_solar(1900, 1, 1, False)
     assert solar_date.year == 1900
     assert solar_date.month == 1
     assert solar_date.day == 31
コード例 #25
0
    def post(self):
        user = users.get_current_user()
        if user:
            pass
        else:
            self.redirect(users.create_login_url(self.request.uri))


        msg_job_queue_name= DEFAULT_MESSAGING_JOB_NAME
        msg_job = MessagingJob(parent=messagingJob_key(msg_job_queue_name))

        msg_job.owner = users.get_current_user()

        msg_job.note = self.request.get('content')

        if self.request.get('date_type') == 'lunar':
            try:
                msg_job.date = LunarDate(int(self.request.get('year')),
                        int(self.request.get('month')), int(self.request.get('day'))).toSolarDate()
            except ValueError:
                self.redirect('/?msg=invalid_date')
                return
        else:
            try:
                msg_job.date = date(int(self.request.get('year')),
                        int(self.request.get('month')), int(self.request.get('day')))
                LunarDate.fromSolarDate(msg_job.date.year,
                        msg_job.date.month,
                        msg_job.date.day).toSolarDate()
            except ValueError:
                self.redirect('/?msg=invalid_date')
                return

        lunarDate=LunarDate.fromSolarDate(msg_job.date.year,msg_job.date.month,msg_job.date.day)
        msg_job.lunar_month = lunarDate.month
        msg_job.lunar_day = lunarDate.day

        base_messaging_jobs_query = MessagingJob.query(
            ancestor=messagingJob_key(DEFAULT_MESSAGING_JOB_NAME))
        messaging_jobs_query_by_user = base_messaging_jobs_query.filter(
            MessagingJob.owner == user)
        if messaging_jobs_query_by_user.count() >= MAX_ENTRIES_PER_USER:
            self.redirect('/?msg=exceed_user_quota')
            return

        messaging_jobs_query_by_date = base_messaging_jobs_query.filter(
                MessagingJob.lunar_month == msg_job.lunar_month).filter(
                MessagingJob.lunar_day == msg_job.lunar_day)
        if messaging_jobs_query_by_date.count() >= MAX_ENTRIES_PER_DAY:
            self.redirect('/?msg=exceed_daily_quota')
            return

        msg_job.put()

        self.redirect('/')
コード例 #26
0
ファイル: report.py プロジェクト: ibread/ibread
def lunar_today():
    '''
        Return today's lunar date
    '''
    day1=[u"初", u"十", u"廿", u"三"]
    day2=[u"十", u"一", u"二", u"三", u"四", u"五", u"六", u"七", u"八", u"九"]
    month=day2[:]
    month[1] = u"正"
    month.extend([u"十", u"冬", u"腊"])
    return u"%s月%s%s" % (month[LunarDate.today().month],
                       day1[(LunarDate.today().day)/10],
                       day2[LunarDate.today().day%10])
コード例 #27
0
    def test_lunar_to_solar_19550329_leap_case_check_with_solar(self):
        lunar_date = LunarDate(1955, 3, 29, False)
        solar_date = lunar_date.solar()
        assert solar_date.year == 1955
        assert solar_date.month == 4
        assert solar_date.day == 21

        lunar_date_leap = LunarDate(1955, 3, 29, True)
        solar_date_leap = lunar_date_leap.solar()
        assert solar_date_leap.year == 1955
        assert solar_date_leap.month == 5
        assert solar_date_leap.day == 20
コード例 #28
0
    def _populate(self, year):
        # New Year's Day
        name = "New Year's Day"
        self[date(year, 1, 1)] = name

        # New Year's Day by the Lunar
        name = "New Year's Day by the Lunar"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 1, 1).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Independence Movement Day
        name = "Independence Movement Day"
        self[date(year, 3, 1)] = name

        # Buddha's Birthday
        name = "Buddha's Birthday"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 4, 8).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Children's Day
        name = "Children's Day"
        self[date(year, 5, 5)] = name

        # Memorial Day
        name = "Memorial Day"
        self[date(year, 6, 6)] = name

        # Liberation Day
        name = "Liberation Day"
        self[date(year, 8, 15)] = name

        # Chuseok
        name = "Chuseok"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 8, 15).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # National Foundation Day
        name = "National Foundation Day"
        self[date(year, 10, 3)] = name

        # Hangeul Proclamation Day
        name = "Hangeul Proclamation Day"
        self[date(year, 10, 9)] = name

        # Christmas Day
        name = "Christmas Day"
        self[date(year, 12, 25)] = name
コード例 #29
0
def buddha(year=None):
    """
    :parm year: int
    :return: Buddha's Birthday Day
    """
    year = year if year else _year
    return LunarDate(year, 4, 8).toSolarDate()
コード例 #30
0
def chuseok(year=None):
    """
    :parm year: int
    :return: Thanksgiving Day of Korea
    """
    year = year if year else _year
    return LunarDate(year, 8, 15).toSolarDate()
コード例 #31
0
def lunar_newyear(year=None):
    """
    :parm year: int
    :return: Lunar New Year Day
    """
    year = year if year else _year
    return LunarDate(year, 1, 1).toSolarDate()
コード例 #32
0
ファイル: demo.py プロジェクト: hrl/HCQ
def getTerm(date=None, seazon=None):
    # getTerm(year, seazon):
    #   getTerm(2014, 0): 2014 Spring
    #   getTerm(2014, 1): 2014 Autumn
    # getTerm([date]):
    #   getTerm('2014-09-01')
    if date is None:
        date = getDateCN()

    if seazon is not None:
        year = date
    else:
        year, month, day = date.split('-')
        year = int(year)
        month = int(month)
        day = int(day)

        yearLunar = LunarDate.fromSolarDate(year, month, day).year
        if month < 8:
            if yearLunar == year:
                seazon = 0
            else:
                seazon = 1
        else:
            seazon = 1

        year = yearLunar

    return str((year - 2009) * 2 + seazon)
コード例 #33
0
ファイル: test.py プロジェクト: ibread/ibread
def lunar_date(date):
    '''
        Return lunar date accodring to given date
        Its format should be 1985-09-06 or 1985/09/06
        
        raise Value error if date is not correct
    '''
    
    if '-' in date:
        split_date = date.split('-')
    elif '/' in date:
        split_date = date.split('/')
    else:
        raise ValueError, "%s Not as 1985-09-06 or 1985/09/06" % date

    if len(split_date) != 3:
        raise ValueError, "%s Not as 1985-09-06 or 1985/09/06" % date
    
    year = int(split_date[0])
    month = int(split_date[1])
    day = int(split_date[2])

    if year < 1900 or year > 2049:
        raise ValueError, "Year should in [1900, 2049]"

    date = datetime(year, month, day)

    date = LunarDate.fromSolarDate(year, month, day)
        
    day1=[u"初", u"十", u"廿", u"三"]
    day2=[u"十", u"一", u"二", u"三", u"四", u"五", u"六", u"七", u"八", u"九"]
    month=day2[:]
    month[1] = u"正"
    month.extend([u"十", u"冬", u"腊"])
    return u"%s年%s月%s%s" % (date.year, month[date.month], day1[date.day/10], day2[date.day%10])
コード例 #34
0
    def get_queryset(self, *args, **kwargs):
        queryset_list = Event.objects.all()
        year_q = self.request.GET.get("year")
        month_q = self.request.GET.get("month")
        type_q = self.request.GET.get('type')

        if year_q and year_q != 'null':
            try:
                year_q = int(year_q)
            except:
                year_q = datetime.now().year
        else:
            year_q = datetime.now().year

        if type_q and type_q != 'null':
            queryset_list = queryset_list.filter(type=type_q)

        if month_q and month_q != 'null':
            month_q = int(month_q)
            filtered_queryset_list = []
            for each_query in queryset_list:
                if each_query.is_lunar:
                    date = LunarDate(year_q, each_query.origin_date.month,
                                     each_query.origin_date.day).toSolarDate()
                else:
                    date = each_query.origin_date
                if date.month == month_q:
                    filtered_queryset_list.append(each_query)
            return filtered_queryset_list
        return queryset_list
コード例 #35
0
ファイル: base.py プロジェクト: MinjeJeon/koreanholiday
 def koreanthanksgiving(self, year=None, dayoff=False, substitute=True):
     year = year if year else self.core.thisyear
     theday = LunarDate(year, 8, 15).toSolarDate()
     if dayoff:
         return self.core.threedays(theday)
     else:
         return theday
コード例 #36
0
ファイル: serializers.py プロジェクト: 8hourmakers/the-dayz
    def get_converted_date(self, obj):
        year = self.context.get('request').GET.get('year')
        is_lunar = obj.is_lunar

        try:
            year = int(year)
        except:
            year = datetime.now().year

        if is_lunar:
            if not year or year == 'null' or (year < 1900 or year >= 2050):
                year = datetime.now().year
            date = LunarDate(year, obj.origin_date.month,
                             obj.origin_date.day).toSolarDate()
        else:
            date = obj.origin_date
        return date.strftime("%m-%d")
コード例 #37
0
    def _populate(self, year):
        # New Year's Day
        name = "New Year's Day"
        self[date(year, 1, 1)] = name

        # Vietnamese New Year
        name = "Vietnamese New Year"
        self[LunarDate(year - 1, 12, 30).toSolarDate()] = name
        self[LunarDate(year, 1, 1).toSolarDate()] = name
        self[LunarDate(year, 1, 2).toSolarDate()] = name
        self[LunarDate(year, 1, 3).toSolarDate()] = name
        self[LunarDate(year, 1, 4).toSolarDate()] = name
        self[LunarDate(year, 1, 5).toSolarDate()] = name

        # Hung Kings Commemorations
        name = "Hung Kings Commemorations"
        self[LunarDate(year, 3, 10).toSolarDate()] = name

        # Reunification Day
        name = "Reunification Day"
        self[date(year, 4, 30)] = name

        # Labor Day/International Workers' Day
        name = "Labor Day/International Workers' Day"
        self[date(year, 5, 1)] = name

        # National Day
        name = "National Day"
        self[date(year, 9, 2)] = name
コード例 #38
0
ファイル: base.py プロジェクト: MinjeJeon/koreanholiday
 def buddhasbirthday(self, year=None, dayoff=False, substitute=True):
     year = year if year else self.core.thisyear
     theday = LunarDate(year, 4, 8).toSolarDate()
     if dayoff:
         if 1975 <= year:
             return theday
         else:
             return None
     else:
         return theday
コード例 #39
0
 def get(self):
     today_ld = LunarDate.today()
     q1 = MessagingJob.query(MessagingJob.lunar_month == today_ld.month, MessagingJob.lunar_day == today_ld.day)
     for job in q1.iter():
         mail.send_mail(
             sender=SENDER,
             to=job.owner.email(),
             subject="Lunar Calendar Reminder - " + job.note,
             body=EMAIL_BODY % (job.owner.nickname(), job.note, job.getNextRun()),
         )
コード例 #40
0
ファイル: serializers.py プロジェクト: 8hourmakers/the-dayz
 def validate_converted_date(self, value):
     date = value
     data = self.get_initial()
     request = self.context.get("request")
     year = request.GET.get('year')
     is_lunar = data.get("is_lunar")
     if is_lunar:
         if not year or year == 'null':
             year = datetime.now().year
         date = LunarDate(year, date.month, date.day).toSolarDate()
     return date
コード例 #41
0
def process_workbook(workbook):
    s = workbook.sheet_by_index(0)
    print(s.name)

    out_book = Workbook()
    sheet1 = out_book.add_sheet("Sheet 1")

    cells = s.row(0)

    for i in range(3):
        sheet1.write(0, i, cells[i].value)
    sheet1.write(0, 3, u"阴历")
    for i in range(5):
        sheet1.write(0, 4 + i, unicode(2014 + i) + u" 阳历")

    for row in range(1, s.nrows):
        for col in range(3):
            value = s.cell(row, col).value
            sheet1.write(row, col, value)

        value = s.cell(row, 2).value
        valstr = str(int(value))
        y = valstr[:4]
        m = valstr[4:6]
        d = valstr[6:8]
        #print(valstr)
        #print(y, m, d)
        y = int(y)
        m = int(m)
        d = int(d)
        try:
            lunar_date = LunarDate.fromSolarDate(y, m, d)
            sheet1.write(
                row, 3, u"{}-{}-{}".format(lunar_date.year, lunar_date.month,
                                           lunar_date.day))
            for i in range(5):
                lunar_date.year = 2014 + i
                try:
                    d = lunar_date.toSolarDate()
                    sheet1.write(row, 4 + i,
                                 u"{}-{}-{}".format(d.year, d.month, d.day))
                except Exception as e:
                    print(e)
                    print(u"错误的日期(1):" + valstr)
                    print(lunar_date)
                    sheet1.write(row, 4 + i, u"错误")
        except Exception as e:
            print(e)
            print(u"错误的日期(2):" + valstr)
            sheet1.write(row, 3, u"错误的日期" + valstr)

    return out_book
コード例 #42
0
ファイル: hdays.py プロジェクト: yunstanford/prophet
    def _populate(self, year):
        # New Year's Day
        name = "New Year's Day"
        self[date(year, 1, 1)] = name

        # Chinese New Year/ Spring Festival
        name = "Chinese New Year"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 1, 1).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Tomb-Sweeping Day
        name = "Tomb-Sweeping Day"
        self[date(year, 4, 4)] = name
        self[date(year, 4, 5)] = name

        # Labor Day
        name = "Labor Day"
        self[date(year, 5, 1)] = name

        # Dragon Boat Festival
        name = "Dragon Boat Festival"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 5, 5).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Mid-Autumn Festival
        name = "Mid-Autumn Festival"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 8, 15).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # National Day
        name = "National Day"
        self[date(year, 10, 1)] = name
コード例 #43
0
ファイル: hdays.py プロジェクト: yunstanford/prophet
    def _populate(self, year):
        # New Year's Day
        name = "New Year's Day"
        self[date(year, 1, 1)] = name

        # Vietnamese New Year
        name = "Vietnamese New Year"
        for offset in range(-1, 2, 1):
            try:
                ds = LunarDate(year - 1 + offset, 12, 30).toSolarDate()
            except ValueError:
                ds = LunarDate(year - 1 + offset, 12, 29).toSolarDate()
            if ds.year == year:
                self[ds] = name
            ds = LunarDate(year + offset, 1, 1).toSolarDate()
            if ds.year == year:
                self[ds] = name
            ds = LunarDate(year + offset, 1, 2).toSolarDate()
            if ds.year == year:
                self[ds] = name
            ds = LunarDate(year + offset, 1, 3).toSolarDate()
            if ds.year == year:
                self[ds] = name
            ds = LunarDate(year + offset, 1, 4).toSolarDate()
            if ds.year == year:
                self[ds] = name
            ds = LunarDate(year + offset, 1, 5).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Hung Kings Commemorations
        name = "Hung Kings Commemorations"
        for offset in range(-1, 2, 1):
            ds = LunarDate(year + offset, 3, 10).toSolarDate()
            if ds.year == year:
                self[ds] = name

        # Reunification Day
        name = "Reunification Day"
        self[date(year, 4, 30)] = name

        # Labor Day/International Workers' Day
        name = "Labor Day/International Workers' Day"
        self[date(year, 5, 1)] = name

        # National Day
        name = "National Day"
        self[date(year, 9, 2)] = name
コード例 #44
0
    def getbirthday(self, year, month, day, hour, birthdaytype):

        f = open(datafolder + '万年历.txt')
        cal = pd.read_csv(f, header=0, index_col=0, encoding='utf-8')
        if birthdaytype == '阳历':
            l = cal.loc[dt.date(year, month, day).strftime('%Y-%m-%d')]

            return {'阳历':dt.datetime(year,month,day,hour),\
                    '阴历':{'生日':[l[0],l[1],l[2],hour]}
                    }
        elif birthdaytype == '阴历':

            l = LunarDate(year, month, day, isLeapMonth).toSolarDate()
            return {'阳历':dt.datetime(l[0],l[1],l[2],hour),\
                    '阴历':{'生日':[year,month,day,hour]}
                    }
コード例 #45
0
ファイル: base.py プロジェクト: MinjeJeon/koreanholiday
 def lunarnewyearsday(self, year=None, dayoff=False, substitute=True):
     year = year if year else self.core.thisyear
     theday = LunarDate(year, 1, 1).toSolarDate()
     if dayoff:
         if 2014 <= year:
             if substitute:
                 return self.core.threedays(theday)
             else:
                 return self.core.threedays(theday)
         elif 1989 <= year < 2014:
             return self.core.threedays(theday)
         elif 1985 <= year < 1989:
             return theday
         else:
             return None
     else:
         return theday
コード例 #46
0
    def test_lunar_to_solar_19550329_leap_case_check_with_solar(self):
        lunar_date = LunarDate(1955, 3, 29, False)
        solar_date = lunar_date.solar()
        assert solar_date.year == 1955
        assert solar_date.month == 4
        assert solar_date.day == 21

        lunar_date_leap = LunarDate(1955, 3, 29, True)
        solar_date_leap = lunar_date_leap.solar()
        assert solar_date_leap.year == 1955
        assert solar_date_leap.month == 5
        assert solar_date_leap.day == 20
コード例 #47
0
def checkFriends(today):
    birthData = file('D:\OtherCode\Navigation\Tools\LearningPython\Email\Birthday.txt','r')
    Persons = []
    for line in birthData.readlines():
        name = line.split(' ')[0]
        birthday = line.split(' ')[1]
        isLunar = line.split(' ')[2]
        birthDate = datetime.datetime.strptime(birthday, '%Y-%m-%d')
        age = today.date().year - birthDate.date().year
        if string.atoi(isLunar):
            birthDateLunar = LunarDate(birthDate.date().year, birthDate.date().month, birthDate.date().day).toSolarDate()
            birthDate = datetime.datetime.combine(birthDateLunar, datetime.time())
        birthDate = birthDate.replace(year=today.year)
        timespan = birthDate - today
        if timespan.days >= -1 and timespan.days <= 2:
            Persons.append(Person(name, birthDate, timespan.days+1, age, string.atoi(isLunar)))

    return Persons
コード例 #48
0
 def isHoliday(self, date):
     y = date.getYear()
     m = date.getMonth()
     d = date.getDay()
     lDay = LunarDate.fromSolarDate(y, m, d)
     lm = lDay.month
     ld = lDay.day
     
     flag = ((m == 1) and (d == 1)) \
         or ((m == 3) and (d == 1)) \
         or (d == 5 and m == 4 and y <= 2005) \
         or(d == 1 and m == 5) \
         or(d == 5 and m == 5) \
         or (d == 6 and m == 6) \
         or (d == 17 and m == 7 and y <= 2007) \
         or(d == 15 and m == 8) \
         or (d == 3 and m == 10) \
         or ((m == 10) and (d == 9) and (y >= 2013)) \
         or ((m == 12) and (d == 25)) \
         or ((lm == 12) and (ld == 31))\
         or ((lm == 1) and (ld == 1))\
         or ((lm == 1) and (ld == 2))\
         or ((lm == 4) and (ld == 8))\
         or ((lm == 8) and (ld == 14))\
         or ((lm == 8) and (ld == 15))\
         or ((lm == 8) and (ld == 16))\
         or (d == 15 and m == 4 and y == 2004)\
         or (d == 31 and m == 5 and y == 2006)\
         or (d == 19 and m == 12 and y == 2007)\
         or (d == 9 and m == 4 and y == 2008)\
         or (d == 2 and m == 6 and y == 2010)\
         or (d == 11 and m == 4 and y == 2012)\
         or (d == 19 and m == 12 and y == 2012)\
         or (d == 4 and m == 6 and y == 2014)\
         or (d == 13 and m == 4 and y == 2016)\
         or (d == 20 and m == 12 and y == 2017)\
         or (d == 18 and m == 2 and y == 2015) \
         or (d == 10 and m == 9 and y == 2014)
     
     if self.isWeekend(date) or flag :
         return True
     else : 
         return False
コード例 #49
0
ファイル: birthday.py プロジェクト: haoflynet/admin
    def check_birth(self):
        """
        查询明天生日的人,百度查询,今天是农历几月几日
        """
        new_today = datetime.datetime.now()
        old_today = LunarDate.today()
        tomorrow = datetime.timedelta(days=1)

        peoples = []
        for _i in range(7):
            peoples.append(People.objects.filter(
                (
                    Q(birth_lunar__month=old_today.month) &
                    Q(birth_lunar__day=old_today.day)
                ) |
                (
                    Q(birth_new__month=new_today.month) &
                    Q(birth_new__day=new_today.day)
                )
            ))
            new_today += tomorrow
            old_today += tomorrow
        email = self.generate_birth_email(peoples)
        send_email(email, '好友生日提醒', settings.CRON_MAIL)
コード例 #50
0
 def getLunarDate(self):
     ld = LunarDate.fromSolarDate(self.date.year, self.date.month,self.date.day)
     return ld
コード例 #51
0
ファイル: plumyi.py プロジェクト: wu-yuanyi/PlumYi
    "雷泽归妹":"归妹,天地之大义也。天地不交,而万物不兴。归妹,人之终始也。说以动,所归妹也。征凶,位不当也。无攸利,柔乘刚也。",
    "雷火丰":"丰,大也。明以动,故丰。王假之,尚大也。勿忧宜日中,宜照天下也。日中则昃,月盈则食,天地盈虚,与时消息,而况于人乎,况于鬼神乎?",
    "火山旅":"旅,小亨,柔得中乎外,而顺乎刚,止而丽乎明,是以小亨旅贞吉也。旅之时义大矣哉。",
    "风风巽":"重巽以申命,刚巽乎中正而志行。柔皆顺乎刚,是以小亨,利有攸往,利见大人。",
    "泽泽兑":"兑,说也。刚中而柔外,说以利贞,是以顺乎天,而应乎人。说以先民,民忘其劳。说以犯难,民忘其死。兑之大,民劝矣哉。",
    "风水涣":"涣亨,刚来而不穷,柔得位乎外,而上同。王假有庙,王乃在中也。利涉大川,乘木有功也。",
    "水泽节":"节亨,刚柔分而刚得中。苦节不可贞,其道穷也。说以行险,当位以节,中正以通。天地节,而四时成。节以制度,不伤财,不害民。",
    "风泽中孚":"中孚,柔在内而刚得中,说而巽,孚乃化邦也。豚鱼吉,信及豚鱼也。利涉大川,乘木舟虚也。中孚以利贞,乃应乎天也。",
    "雷山小过":"小过,小者过而亨也。过以利贞,与时行也。柔得中,是以小事吉也。刚失位而不中,是以不可大事也。有飞鸟之象焉,飞鸟遗之音,不宜上宜下大吉,上逆而下顺也。",
    "水火既济":"既济亨,小者亨也。利贞,刚柔正而位当也。初吉,柔得中也。终止则乱,其道穷也。",
    "火水未济":"未济亨,柔得中也。小狐汔济,未出中也。濡其尾,无攸利,不续终也。虽不当位,刚柔应也。"
    }

timestr=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
timelist=timestr.split('-')
lunar=LunarDate.fromSolarDate(int(timelist[0]),int(timelist[1]),int(timelist[2]))
lunar_year=((lunar.year-2000+6)%12) and ((lunar.year-2000+6)%12) or 12
lunar_month=lunar.month
lunar_day=lunar.day
lunar_hour=bool(((int(timelist[3])+1)//2+1)%12) and (((int(timelist[3])+1)//2+1)%12) or 12

upperhexagram=((lunar_year+lunar_month+lunar_day)%8) and ((lunar_year+lunar_month+lunar_day)%8) or 8
lowerhexagram=((lunar_year+lunar_month+lunar_day+lunar_hour)%8) and ((lunar_year+lunar_month+lunar_day+lunar_hour)%8) or 8
trans=((lunar_year+lunar_month+lunar_day+lunar_hour)%6) and ((lunar_year+lunar_month+lunar_day+lunar_hour)%6) or 6

solid=hexagram[upperhexagram]+hexagram[lowerhexagram]
print(solid)

for (key,value) in Yao.items():
    if solid in key:
        print(value)