CalendarSys.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import calendar,datetime
  2. def GetNowYMD():
  3. now=datetime.datetime.now()
  4. nyear=now.year
  5. nmonth=now.month
  6. nday=now.day
  7. return (nyear,nmonth,nday)
  8. def GetWeekSinceNow():
  9. now=datetime.datetime.today()
  10. nyear=now.year
  11. nmonth=now.month
  12. nday=now.day
  13. return GetWeekSince(nyear,nmonth,nday)
  14. def GetWeekSince(nyear,nmonth,nday):
  15. dotm=calendar.monthrange(nyear,nmonth)[1]
  16. if nday + 7 <= dotm:
  17. return (nyear,nmonth,0,range(nday+1,nday+8))
  18. else:
  19. rlist=range(nday+1,dotm+1)
  20. rlist.extend(range(1,8-(dotm-nday)))
  21. return (nyear,nmonth,dotm-nday,rlist)
  22. def GetBWeekSince(nyear,nmonth,nday):
  23. dotm=calendar.monthrange(nyear,nmonth)[1]
  24. if nday + 10 <= dotm:
  25. return (nyear,nmonth,0,range(nday+1,nday+11))
  26. else:
  27. rlist=range(nday+1,dotm+1)
  28. rlist.extend(range(1,11-(dotm-nday)))
  29. return (nyear,nmonth,dotm-nday,rlist)
  30. def GetBWeekSinceYesterday():
  31. now=datetime.datetime.today()-datetime.timedelta(days=1)
  32. nyear=now.year
  33. nmonth=now.month
  34. nday=now.day
  35. return GetBWeekSince(nyear,nmonth,nday)
  36. def GetTenDaysRangeSinceYesterday():
  37. opdt=datetime.date.today()-datetime.timedelta(days=1)
  38. eddt=datetime.date.today()+datetime.timedelta(days=9)
  39. return (opdt,eddt)
  40. def GetDateoutRangeSinceYesterday():
  41. opdt=datetime.date(1,1,1)
  42. eddt=datetime.date.today()-datetime.timedelta(days=1)
  43. return (opdt,eddt)
  44. def SafetyStrftime(datetime,fmt):
  45. try:
  46. return datetime.strftime(fmt)
  47. except:
  48. return ""