Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. # print weeknum, monday-sunday str
  2. # like: 19w36(190902-190908)
  3.  
  4. import datetime
  5. import argparse
  6.  
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument('--scrapbox' ,action='store_true') #for scrapbox text
  9. parser.add_argument('--name') #for scrapbox text
  10. args = parser.parse_args()
  11. # args.scrapbox
  12.  
  13. def yymmdd(dayobj):
  14. retstr = '%02d%02d%02d' % (dayobj.year % 100, dayobj.month, dayobj.day)
  15. return retstr
  16. def yymmdd_wday(dayobj):
  17. list_wday = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
  18. wday = list_wday[dayobj.weekday()]
  19. retstr = '%02d%02d%02d(%s)' % (dayobj.year % 100, dayobj.month, dayobj.day, wday)
  20. return retstr
  21. def yy_wnum(dayobj):
  22. # dayobj.isocalendar(): returns iso-year, iso-wnum etc.
  23. # 'iso-year' 'iso-wnum' means
  24. # which calendar year/week the day belongs to.
  25. (calyear,calweek) = dayobj.isocalendar()[0:2]
  26. retstr = '%02dw%02d' % (calyear % 100, calweek)
  27. return retstr
  28.  
  29. def weekstr(monday):
  30. # 190902-190908
  31. # iso weeknum counts Thursday
  32. sunday = monday + datetime.timedelta(days=6)
  33. retstr = '%s(%s-%s)' % (yy_wnum(monday), yymmdd(monday),yymmdd(sunday))
  34. if(args.name):
  35. retstr = args.name + '-' + retstr
  36. return retstr
  37.  
  38. def monday_thru_friday(monday):
  39. list_weekdays = [monday]
  40. list_outstr = []
  41. for i in range(1,5):# 1,2,3,4
  42. theday = monday + datetime.timedelta(days=i)
  43. list_weekdays.append(theday)
  44. for day in list_weekdays:
  45. list_outstr.append(yymmdd_wday(day))
  46. return list_outstr
  47.  
  48.  
  49. today = datetime.date.today()
  50.  
  51. # isocalendar() works:
  52. # see 2018/12/31 is 2019-w1, not 2018-w52
  53. #today = datetime.date(2018,12,31)
  54.  
  55. # need to determine 'Monday of the week'
  56. # 0:Monday
  57. # Monday = today - day_of_wk
  58. day_of_wk = today.weekday()
  59.  
  60. # determine Monday and Sunday
  61. monday = today - datetime.timedelta(days=day_of_wk)
  62.  
  63. out_title = weekstr(monday)
  64. print(out_title)
  65.  
  66. if(args.scrapbox):
  67. # 来週・先週へのリンク
  68. last_monday = monday - datetime.timedelta(days=7)
  69. next_monday = monday + datetime.timedelta(days=7)
  70. # 7 days from this monday
  71. # link to next/last
  72. print ("last < ["+weekstr(last_monday) + "] ["+weekstr(next_monday) + "] > next")
  73.  
  74. wdaylist = monday_thru_friday(monday)
  75. wdaylist.reverse()
  76. for wdaystr in wdaylist:
  77. print("[*** " + wdaystr + "]")
  78. if args.name:
  79. print("#" + args.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement