調整さんのために適当な日程を出力するスクリプト
概要
日常的なタスクの効率化が好きだったりします。ちょっとした作業改善のために作った簡単な小さなツールも日々の成果物として公開いこうかなと。今回はその第一弾。
"調整さん"を立てるときの日程候補一覧出力するスクリプト
調整さんを立てるときに、日程候補の一覧を入力する必要があるのだが、いちいち「日付を書いて、曜日をつけて改行」と繰り返したりする必要があるのだが、規則的なルールなのに、手打ちするのもどうかな~と思って、その部分を出力してくれるスクリプトを書いたよという話。凄い簡単なスクリプトだが晒してみる。
スクリプト
#!/usr/bin/env python # coding:utf-8 import datetime """ 調整さんのために日程一覧を出力してくれるスクリプト. http://chouseisan.com/ """ # Configuration WEEKDAYS = ["月", "火", "水", "木", "金", "土", "日"] SCHEDULE_DISTANCE = 7 # 出力期間(days) EXCEPT_DAY = [] # 除外日 e.g. [3,4] 3日と4日は外す. EXCEPT_WEEKDAY = [] # 除外曜日 e.g. [5,6] 土日は除外 START_HOUR = 18 # 予定開始時刻 END_HOUR = 22 # 予定終了時刻 TIME_DISTANCE = 2 # 時刻の間隔 # startdate start_date = datetime.datetime.now() #start_date = datetime.datetime(YEAR, MONTH, TODAY) end_date = start_date + datetime.timedelta(SCHEDULE_DISTANCE - 1 ) # easy validation if not (end_date - start_date).days > 0: raise ValueError("end_dateはstart_dateより未来の日付を指定してください") # Display (調整さんフォーマット) tmp_date = start_date while (end_date - tmp_date).days >= 0: if tmp_date.day in EXCEPT_DAY or \ tmp_date.weekday() in EXCEPT_WEEKDAY: # 除外日・除外曜日 pass else: hour = START_HOUR while hour < END_HOUR: weekday_str = WEEKDAYS[tmp_date.weekday()] print "%02d/%02d(%s) %02d:00~" % (tmp_date.month, tmp_date.day, weekday_str, hour ) hour += TIME_DISTANCE tmp_date += datetime.timedelta(1) # End of Script #
出力(一週間分)
03/06(火) 18:00~ 03/06(火) 20:00~ 03/07(水) 18:00~ 03/07(水) 20:00~ 03/08(木) 18:00~ 03/08(木) 20:00~ 03/09(金) 18:00~ 03/09(金) 20:00~ 03/10(土) 18:00~ 03/10(土) 20:00~ 03/11(日) 18:00~ 03/11(日) 20:00~ 03/12(月) 18:00~ 03/12(月) 20:00~
こんなしょうもないツールの紹介でした。以上。