Exemplo n.º 1
0
    def test_original_holiday(self):
        """
        独自の休み
        """
        class TestHoliday(jpholiday.registry.OriginalHoliday):
            def _is_holiday(self, date):
                if date == datetime.date(2020, 2, 3) or date == datetime.date(
                        2020, 2, 5):
                    return True
                if date == datetime.date(2020, 2, 9):
                    return True
                return False

            def _is_holiday_name(self, date):
                return '特別休暇'

        # 国民の休日
        self.assertEqual(jpholiday.is_holiday_name(datetime.date(2020, 2, 3)),
                         '特別休暇')
        self.assertEqual(jpholiday.is_holiday(datetime.date(2020, 2, 4)),
                         False)
        self.assertEqual(jpholiday.is_holiday_name(datetime.date(2020, 2, 5)),
                         '特別休暇')

        # 振替休日
        self.assertEqual(jpholiday.is_holiday_name(datetime.date(2020, 2, 9)),
                         '特別休暇')
        self.assertEqual(jpholiday.is_holiday(datetime.date(2020, 2, 10)),
                         False)

        jpholiday.registry.OriginalHoliday.unregister(TestHoliday)
Exemplo n.º 2
0
 def test_other_holiday(self):
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1959, 4, 10)),
                      '皇太子・明仁親王の結婚の儀')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1989, 2, 24)),
                      '昭和天皇の大喪の礼')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(1990, 11, 12)), '即位の礼正殿の儀')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1993, 6, 9)),
                      '皇太子・皇太子徳仁親王の結婚の儀')
Exemplo n.º 3
0
    def test_is_holiday_name(self):
        """
        型チェック
        """
        with self.assertRaises(JPHolidayTypeError):
            jpholiday.is_holiday_name(21210101)

        with self.assertRaises(JPHolidayTypeError):
            jpholiday.is_holiday_name('2021-01-01')
Exemplo n.º 4
0
def main():
    try:
        today = datetime.date(year, month, day)

        if is_holiday(today):
            # output logging cloud console
            write_entry(
                "It's {} holiday! - scraping-nta-diff-data function".format(
                    is_holiday_name(today)))

        else:
            rows = scrape_target_tag()
            files_num = scrape_files_num(rows)

            # TODO: get files upload date Checking if the file is already gotten

            zip_file = download_files(files_num)

            storage_client = storage.Client()
            bucket = storage_client.bucket('TARGET_BUCKET')
            blob = bucket.blob('diff_{}.zip'.format(
                datetime.now().strftime("%Y%m%d")))

            # TODO: confirm target bucket if there is same name file with trying to upload file name

            blob.upload_from_filename(zip_file)

            os.remove(zip_file)

            # TODO: confirm target bucket if there is that updated file whether or not.

    except Exception as e:
        return print("Exception: {}. Please contact techDev0".format(e))
Exemplo n.º 5
0
 def test_datetime_sea_day(self):
     """
     海の日
     """
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2020, 7, 23, 1, 1, 1)),
         '海の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2021, 7, 22, 1, 1, 1)),
         '海の日')
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2020, 7, 23, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2021, 7, 22, 1, 1, 1)))
     self.assertEqual(
         jpholiday.between(datetime.datetime(2020, 7, 23, 1, 1, 1),
                           datetime.datetime(2020, 7, 23, 1, 1, 1)),
         [(datetime.date(2020, 7, 23), '海の日')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(2021, 7, 22, 1, 1, 1),
                           datetime.datetime(2021, 7, 22, 1, 1, 1)),
         [(datetime.date(2021, 7, 22), '海の日')])
Exemplo n.º 6
0
 def test_datetime_sports_day(self):
     """
     スポーツの日
     """
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2020, 7, 24, 1, 1, 1)),
         'スポーツの日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2021, 7, 23, 1, 1, 1)),
         'スポーツの日')
     self.assertTrue(
         jpholiday.is_holiday_name(datetime.datetime(2020, 7, 24, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday_name(datetime.datetime(2021, 7, 23, 1, 1, 1)))
     self.assertEqual(
         jpholiday.between(datetime.datetime(2020, 7, 24, 1, 1, 1),
                           datetime.datetime(2020, 7, 24, 1, 1, 1)),
         [(datetime.date(2020, 7, 24), 'スポーツの日')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(2021, 7, 23, 1, 1, 1),
                           datetime.datetime(2021, 7, 23, 1, 1, 1)),
         [(datetime.date(2021, 7, 23), 'スポーツの日')])
Exemplo n.º 7
0
 def test_datetime_mountain_day(self):
     """
     山の日
     """
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2020, 8, 10, 1, 1, 1)),
         '山の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2021, 8, 8, 1, 1, 1)),
         '山の日')
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2020, 8, 10, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2021, 8, 8, 1, 1, 1)))
     self.assertEqual(
         jpholiday.between(datetime.datetime(2020, 8, 10, 1, 1, 1),
                           datetime.datetime(2020, 8, 10, 1, 1, 1)),
         [(datetime.date(2020, 8, 10), '山の日')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(2021, 8, 8, 1, 1, 1),
                           datetime.datetime(2021, 8, 8, 1, 1, 1)),
         [(datetime.date(2021, 8, 8), '山の日')])
Exemplo n.º 8
0
 def test_datetime_other_holiday(self):
     """
     皇室慶弔行事に伴う祝日
     """
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(1959, 4, 10, 1, 1, 1)),
         '皇太子・明仁親王の結婚の儀')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(1989, 2, 24, 1, 1, 1)),
         '昭和天皇の大喪の礼')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(1990, 11, 12, 1, 1,
                                                     1)), '即位の礼正殿の儀')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(1993, 6, 9, 1, 1, 1)),
         '皇太子・皇太子徳仁親王の結婚の儀')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2019, 5, 1, 1, 1, 1)),
         '天皇の即位の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.datetime(2019, 10, 22, 1, 1,
                                                     1)), '即位礼正殿の儀')
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(1959, 4, 10, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(1989, 2, 24, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(1990, 11, 12, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(1993, 6, 9, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2019, 5, 1, 1, 1, 1)))
     self.assertTrue(
         jpholiday.is_holiday(datetime.datetime(2019, 10, 22, 1, 1, 1)))
     self.assertEqual(
         jpholiday.between(datetime.datetime(1959, 4, 10, 1, 1, 1),
                           datetime.datetime(1959, 4, 10, 1, 1, 1)),
         [(datetime.date(1959, 4, 10), '皇太子・明仁親王の結婚の儀')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(1989, 2, 24, 1, 1, 1),
                           datetime.datetime(1989, 2, 24, 1, 1, 1)),
         [(datetime.date(1989, 2, 24), '昭和天皇の大喪の礼')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(1990, 11, 12, 1, 1, 1),
                           datetime.datetime(1990, 11, 12, 1, 1, 1)),
         [(datetime.date(1990, 11, 12), '即位の礼正殿の儀')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(1993, 6, 9, 1, 1, 1),
                           datetime.datetime(1993, 6, 9, 1, 1, 1)),
         [(datetime.date(1993, 6, 9), '皇太子・皇太子徳仁親王の結婚の儀')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(2019, 5, 1, 1, 1, 1),
                           datetime.datetime(2019, 5, 1, 1, 1, 1)),
         [(datetime.date(2019, 5, 1), '天皇の即位の日')])
     self.assertEqual(
         jpholiday.between(datetime.datetime(2019, 10, 22, 1, 1, 1),
                           datetime.datetime(2019, 10, 22, 1, 1, 1)),
         [(datetime.date(2019, 10, 22), '即位礼正殿の儀')])
Exemplo n.º 9
0
def holidayhantei(now_aft_pls):
    yr_pls = now_aft_pls.year
    mt_pls = now_aft_pls.month
    dy_pls = now_aft_pls.day
    # ---datetimeから曜日を取得 weekdayと曜日の対応  0: 月, 1: 火, 2: 水, 3: 木, 4: 金, 5: 土, 6: 日---#
    wk_aft_pls = now_aft_pls.weekday()
    flg = 0  #祝日判定フラグ 0:通常営業日、1:土日休日、2:祝日休日
    if wk_aft_pls >= 5:
        flg = 1  #土曜または日曜日
    else:
        hldy = jpholiday.is_holiday_name(datetime.date(yr_pls, mt_pls, dy_pls))
        if hldy != None:  #Noneは文字列ではない!
            flg = 2  #祝日→hldyn"海の記念日"とかが入る

    #print(now_aft_pls.weekday()) # => 5 曜日取得

    return flg  # 0:通常営業日、1:土日、2:祝日
Exemplo n.º 10
0
def OPU(year, month, day):
    monthday = "a"
    jholiday = jpholiday.is_holiday(datetime.date(year, month, day))
    if jholiday == True:
        jholiday_name = jpholiday.is_holiday_name(
            datetime.date(year, month, day))
        if main_set[10] == 1:
            year = year - 2000  # 22-0206みたいに年の2文字を前につける
            month = Zeroplus(month)
            day = Zeroplus(day)
            monthday = str(
                year) + "-" + month + day + "(" + jholiday_name + ")"
        else:
            print(str(jholiday_name) + "なので、この日のフォルダは作りません。充実した休日を過ごして下さいね。")
            monthday = "n"
    else:
        year = year - 2000  # 22-0206みたいに年の2文字を前につける
        month = Zeroplus(month)
        day = Zeroplus(day)
        monthday = str(year) + "-" + month + day
    return monthday
Exemplo n.º 11
0
 def test_holiday(self):
     """
     2019年祝日
     """
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 1, 1)),
                      '元日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 1, 14)),
                      '成人の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 2, 11)),
                      '建国記念の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 3, 21)),
                      '春分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 4, 29)),
                      '昭和の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 4, 30)),
                      '国民の休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 1)),
                      '天皇の即位の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 2)),
                      '国民の休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 3)),
                      '憲法記念日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 4)),
                      'みどりの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 5)),
                      'こどもの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 5, 6)),
                      'こどもの日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 7, 15)),
                      '海の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 8, 11)),
                      '山の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 8, 12)),
                      '山の日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 9, 16)),
                      '敬老の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 9, 23)),
                      '秋分の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2019, 10, 14)), '体育の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2019, 10, 22)), '即位礼正殿の儀')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 11, 3)),
                      '文化の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2019, 11, 4)),
                      '文化の日 振替休日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2019, 11, 23)), '勤労感謝の日')
Exemplo n.º 12
0
def is_weekday(date):
    return date.weekday() < 5 and jpholiday.is_holiday_name(
        date.date()) is None
Exemplo n.º 13
0
 def test_holiday(self):
     """
     2014年祝日
     """
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 1, 1)), '元日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 1, 13)), '成人の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 2, 11)), '建国記念の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 3, 21)), '春分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 4, 29)), '昭和の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 5, 3)), '憲法記念日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 5, 4)), 'みどりの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 5, 5)), 'こどもの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 5, 6)), 'みどりの日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 7, 21)), '海の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 9, 15)), '敬老の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 9, 23)), '秋分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 10, 13)), '体育の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 11, 3)), '文化の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 11, 23)), '勤労感謝の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 11, 24)), '勤労感謝の日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2014, 12, 23)), '天皇誕生日')
Exemplo n.º 14
0
    def __init__(self, reqDay):

        self.dt = reqDay
        self.isHoliday = jpholiday.is_holiday(self.dt)
        self.holidayName = jpholiday.is_holiday_name(self.dt)
Exemplo n.º 15
0
 def getHolidayName(date):
     return jpholiday.is_holiday_name(date)
Exemplo n.º 16
0
 def test_holiday(self):
     """
     1999年祝日
     """
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 1, 1)),
                      '元日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 1, 15)),
                      '成人の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 2, 11)),
                      '建国記念の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 3, 21)),
                      '春分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 3, 22)),
                      '春分の日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 4, 29)),
                      'みどりの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 5, 3)),
                      '憲法記念日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 5, 4)),
                      '国民の休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 5, 5)),
                      'こどもの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 7, 20)),
                      '海の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 9, 15)),
                      '敬老の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 9, 23)),
                      '秋分の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(1999, 10, 10)), '体育の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(1999, 10, 11)),
         '体育の日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(1999, 11, 3)),
                      '文化の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(1999, 11, 23)), '勤労感謝の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(1999, 12, 23)), '天皇誕生日')
Exemplo n.º 17
0
import pandas as pd
from datetime import date, timedelta
import jpholiday

today = date.today()

date_time = []

for i in range(1000):
    date_time.append(today + timedelta(days=i))

df = pd.DataFrame({'datetime': date_time})

df['is_holiday'] = df['datetime'].map(jpholiday.is_holiday).astype(int)

print(df.head())

print(jpholiday.is_holiday_name(date(2019, 5, 1)))
    def is_holiday(self, t_date):
        holiday_name = jpholiday.is_holiday_name(t_date)

        if t_date.weekday() in [5, 6]:
            return True, holiday_name
        return jpholiday.is_holiday(t_date), holiday_name
Exemplo n.º 19
0
 def test_holiday(self):
     """
     2017年祝日
     """
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 1, 1)),
                      '元日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 1, 2)),
                      '元日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 1, 9)),
                      '成人の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 2, 11)),
                      '建国記念の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 3, 20)),
                      '春分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 4, 29)),
                      '昭和の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 5, 3)),
                      '憲法記念日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 5, 4)),
                      'みどりの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 5, 5)),
                      'こどもの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 7, 17)),
                      '海の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 8, 11)),
                      '山の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 9, 18)),
                      '敬老の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 9, 23)),
                      '秋分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 10, 9)),
                      '体育の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2017, 11, 3)),
                      '文化の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2017, 11, 23)), '勤労感謝の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2017, 12, 23)), '天皇誕生日')
Exemplo n.º 20
0
sheet["C3"].fill = fill_head
sheet["C3"].border = border
sheet["C3"].font = font
sheet["C3"].alignment = alignment
sheet["D3"].value = '祝日'
sheet["D3"].fill = fill_head
sheet["D3"].border = border
sheet["D3"].font = font
sheet["D3"].alignment = alignment

r = 4
for date in cal.itermonthdates(now_year, now_month):
    if date.month == now_month:
        if date.weekday() == 5 or date.weekday() == 6:
            sheet.cell(row=r, column=2).fill = fill_weekend
            sheet.cell(row=r, column=3).fill = fill_weekend
            sheet.cell(row=r, column=4).fill = fill_weekend
        elif jpholiday.is_holiday_name(date) is not None:
            sheet.cell(row=r, column=2).fill = fill_holiday
            sheet.cell(row=r, column=3).fill = fill_holiday
            sheet.cell(row=r, column=4).fill = fill_holiday
        sheet.cell(row=r, column=2).value = date
        sheet.cell(row=r, column=2).border = border
        sheet.cell(row=r, column=3).value = w_list[date.weekday()]
        sheet.cell(row=r, column=3).border = border
        sheet.cell(row=r, column=4).value = jpholiday.is_holiday_name(date)
        sheet.cell(row=r, column=4).border = border
        r = r + 1

book.save(path + excleName)
Exemplo n.º 21
0
 def test_freezegun_datetime(self):
     now = datetime.datetime.now()
     self.assertTrue(isinstance(now, freezegun.api.FakeDatetime))
     self.assertTrue(jpholiday.is_holiday(now))
     self.assertEqual(jpholiday.is_holiday_name(now), 'スポーツの日')
Exemplo n.º 22
0
 def test_holiday(self):
     """
     2021年祝日
     """
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 1, 1)),
                      '元日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 1, 11)),
                      '成人の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 2, 11)),
                      '建国記念の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 2, 23)),
                      '天皇誕生日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 3, 20)),
                      '春分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 4, 29)),
                      '昭和の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 5, 3)),
                      '憲法記念日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 5, 4)),
                      'みどりの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 5, 5)),
                      'こどもの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 7, 22)),
                      '海の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 7, 23)),
                      'スポーツの日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 8, 8)),
                      '山の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 8, 9)),
                      '山の日 振替休日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 9, 20)),
                      '敬老の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 9, 23)),
                      '秋分の日')
     self.assertEqual(jpholiday.is_holiday_name(datetime.date(2021, 11, 3)),
                      '文化の日')
     self.assertEqual(
         jpholiday.is_holiday_name(datetime.date(2021, 11, 23)), '勤労感謝の日')
Exemplo n.º 23
0
async def on_ready():
    print('complete set up.')
    await client.wait_until_ready()
    channel = client.get_channel(int(CHANNNEL))
    await channel.send("```おはよう!```")
    # 起動したらターミナルにログイン通知が表示される
    now = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=9)))
    marume = now.strftime('%Y年%m月%d日')
    weekday = now.strftime('%w')
    week = dayofweek[int(weekday)]
    ato = datetime.date(now.year, now.month, now.day)
    outdayly = (marume + "  (" + week + ")")
    holy = ""
    sendy = ""
    if jpholiday.is_holiday(ato) == True:
        holy = jpholiday.is_holiday_name(ato)
        sendy = "今日は{}だよ!".format(holy)
        print(sendy)
    else:
        if weekday == "6" or weekday == "0":
            sendy = "今日は休日です。ごゆっくりどうぞ!"
        else:
            sendy = "今日も一日頑張りましょう!"
    print("ON")
    #weather
    city = "Osaka"  #your City
    key = ''  #Open Weather map API key {https://openweathermap.org/}
    url = "http://api.openweathermap.org/data/2.5/forecast?&q=" + city + ",JP&units=metric&lang=ja&cnt=7&APPID=" + key

    get_deta = requests.get(url)

    w_deta = get_deta.json()
    jsontxt = json.dumps(w_deta, indent=4)

    j_data = json.loads(get_deta.text)

    print(j_data)

    time = []
    puts = []
    humidity = []
    min_tmp = []
    max_tmp = []

    for cnt in range(len(j_data["list"])):
        print(len(j_data["list"]))
        time.append(j_data["list"][cnt]["dt_txt"])
        icon = (j_data["list"][cnt]["weather"][0]["icon"])
        humidity.append(j_data["list"][cnt]["main"]["humidity"])
        min_tmp.append(j_data["list"][cnt]["main"]["temp_min"])
        max_tmp.append(j_data["list"][cnt]["main"]["temp_max"])

        if (icon == "01d" or icon == "01n"):
            puts.append("快晴")
        elif (icon == "02d" or icon == "02n"):
            puts.append("晴れ")
        elif (icon == "03d" or icon == "04d" or icon == "03n"
              or icon == "04n"):
            puts.append("くもり")
        elif (icon == "09d" or icon == "09n"):
            puts.append("小雨")
        elif (icon == "10d" or icon == "10n"):
            puts.append("雨")
        elif (icon == "11d" or icon == "11n"):
            puts.append("雷雨")
        elif (icon == "13d" or icon == "13n"):
            puts.append("雪")
        elif (icon == "50d" or icon == "50n"):
            puts.append("霧")

    out_weather = discord.Embed(title="今日の大阪府の天気!",
                                color=discord.Colour.from_rgb(18, 207, 224))
    out_weather.add_field(name=outdayly, value=sendy, inline=False)
    #tenki
    out_weather.add_field(name="03:00", value=puts[0], inline=True)
    out_weather.add_field(name="06:00", value=puts[1], inline=True)
    out_weather.add_field(name="09:00", value=puts[2], inline=True)
    out_weather.add_field(name="12:00", value=puts[3], inline=True)
    out_weather.add_field(name="15:00", value=puts[4], inline=True)
    out_weather.add_field(name="18:00", value=puts[5], inline=True)
    out_weather.add_field(name="21:00", value=puts[6], inline=True)
    out_weather.add_field(name="最高気温", value=max_tmp[2], inline=False)
    out_weather.add_field(name="最低気温", value=min_tmp[2], inline=False)
    out_weather.add_field(name="湿度",
                          value="朝" + str(humidity[2]) + "→" + "夜" +
                          str(humidity[4]),
                          inline=False)
    await channel.send(embed=out_weather)
    #API Key (NEWS API{https://newsapi.org/})
    n_key = ''
    indeta = requests.get(
        "http://newsapi.org/v2/top-headlines?country=jp&apiKey=" + n_key)

    w_deta = indeta.json()

    jsontxt = json.dumps(w_deta, indent=4)

    j_data = json.loads(indeta.text)

    cnt = 0
    while (cnt < 5):
        title = j_data["articles"][cnt]["title"]
        t_url = j_data["articles"][cnt]["url"]
        img = j_data["articles"][cnt]["urlToImage"]
        if img is None:
            print("image has not found(404)")
            img = "https://i.pinimg.com/originals/a4/2d/d8/a42dd8bab11d67086e6a82338bbfa290.jpg"
        print(title, url, img)
        cnt = cnt + 1

        out_news = discord.Embed(title=title,
                                 url=t_url,
                                 color=discord.Colour.green())
        out_news.set_image(url=img)
        await channel.send(embed=out_news)

    await client.close()
    try:
        sys.exit(0)
    except SystemExit:
        None