前提・実現したいこと
Pythonを使用したExcelの勤怠管理表の日付と曜日を自動入力するプログラムを製作しています。
サンプルコードには20日締めの書き方が乗っていたのですが、運用したいのは月末締めなのでコードの書き換えを行っています。
調べてみたところtimedltaを使用すれば良い、というのを見たのですがどう組み込んでよいのかわからず困っています。
以下のソースコードにあるreplace内を変えればよいのかなと思うのですが、わかるかたご教授願います。
date_start = month_last.replace(day=21)
date_end = month_current.replace(day=20)
該当のソースコード
python
1import datetime 2import openpyxl 3 4YOUBI = ("月", "火", "水", "木", "金", "土", "日") 5 6input_date = input("作成する年月度を入力してください(例:201608):") 7 8month_current = datetime.datetime.strptime(input_date + "01", "%Y%m%d") 9month_last = month_current - datetime.timedelta(days=1) 10 11date_start = month_last.replace(day=21) 12date_end = month_current.replace(day=20) 13 14file_template = "勤怠管理表.xlsx" 15wb = openpyxl.load_workbook(file_template) 16 17ws = wb["Sheet1"] 18 19ws.cell(row=1, column=1).value = month_current.year 20ws.cell(row=1, column=3).value = month_current.month 21 22for row_num in range(13, 44): 23 if date_start <= date_end: 24 # 月 25 ws.cell(row=row_num, column=1).value = date_start.month 26 # 日 27 ws.cell(row=row_num, column=2).value = date_start.day 28 # 曜日 29 ws.cell(row=row_num, column=3).value = YOUBI[date_start.weekday()] 30 date_start += datetime.timedelta(days=1) 31 32file_new = month_current.strftime('%Y%m') + '_' + file_template 33wb.save(file_new)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/06 22:45