Skip to content

Instantly share code, notes, and snippets.

@inakagawa
Created September 6, 2019 02:53
Show Gist options
  • Save inakagawa/0ba0e675c710bfd2262f5a25f188914f to your computer and use it in GitHub Desktop.
Save inakagawa/0ba0e675c710bfd2262f5a25f188914f to your computer and use it in GitHub Desktop.
# print weeknum, monday-sunday str
# like: 19w36(190902-190908)
import datetime
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--scrapbox' ,action='store_true') #for scrapbox text
parser.add_argument('--name') #for scrapbox text
args = parser.parse_args()
# args.scrapbox
def yymmdd(dayobj):
retstr = '%02d%02d%02d' % (dayobj.year % 100, dayobj.month, dayobj.day)
return retstr
def yymmdd_wday(dayobj):
list_wday = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
wday = list_wday[dayobj.weekday()]
retstr = '%02d%02d%02d(%s)' % (dayobj.year % 100, dayobj.month, dayobj.day, wday)
return retstr
def yy_wnum(dayobj):
# dayobj.isocalendar(): returns iso-year, iso-wnum etc.
# 'iso-year' 'iso-wnum' means
# which calendar year/week the day belongs to.
(calyear,calweek) = dayobj.isocalendar()[0:2]
retstr = '%02dw%02d' % (calyear % 100, calweek)
return retstr
def weekstr(monday):
# 190902-190908
# iso weeknum counts Thursday
sunday = monday + datetime.timedelta(days=6)
retstr = '%s(%s-%s)' % (yy_wnum(monday), yymmdd(monday),yymmdd(sunday))
if(args.name):
retstr = args.name + '-' + retstr
return retstr
def monday_thru_friday(monday):
list_weekdays = [monday]
list_outstr = []
for i in range(1,5):# 1,2,3,4
theday = monday + datetime.timedelta(days=i)
list_weekdays.append(theday)
for day in list_weekdays:
list_outstr.append(yymmdd_wday(day))
return list_outstr
today = datetime.date.today()
# isocalendar() works:
# see 2018/12/31 is 2019-w1, not 2018-w52
#today = datetime.date(2018,12,31)
# need to determine 'Monday of the week'
# 0:Monday
# Monday = today - day_of_wk
day_of_wk = today.weekday()
# determine Monday and Sunday
monday = today - datetime.timedelta(days=day_of_wk)
out_title = weekstr(monday)
print(out_title)
if(args.scrapbox):
# 来週・先週へのリンク
last_monday = monday - datetime.timedelta(days=7)
next_monday = monday + datetime.timedelta(days=7)
# 7 days from this monday
# link to next/last
print ("last < ["+weekstr(last_monday) + "] ["+weekstr(next_monday) + "] > next")
wdaylist = monday_thru_friday(monday)
wdaylist.reverse()
for wdaystr in wdaylist:
print("[*** " + wdaystr + "]")
if args.name:
print("#" + args.name)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment