Guest User

Untitled

a guest
Feb 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. import datetime
  2. def next_weekday(d, weekday):
  3. days_ahead = weekday - d.weekday()
  4. if days_ahead <= 0: # Target day already happened this week
  5. days_ahead += 7
  6. return d + datetime.timedelta(days_ahead)
  7.  
  8. d = datetime.date(2011, 7, 2)
  9. next_monday = next_weekday(d, 0) # 0 = Monday, 1=Tuesday, 2=Wednesday...
  10. print(next_monday)
  11.  
  12. >>> dt = datetime(2011, 7, 2)
  13. >>> dt + timedelta(days=(7 - dt.weekday()))
  14. datetime.datetime(2011, 7, 4, 0, 0)
  15.  
  16. # Returns the date of the next given weekday after
  17. # the given date. For example, the date of next Monday.
  18. onDay = lambda date, day: date + datetime.timedelta(days=(day-date.weekday()+7)%7)
  19.  
  20. >>> d = datetime.date(2011, 7, 2)
  21. >>> while d.weekday() != 0: #0 for monday
  22. ... d += datetime.timedelta(days=1)
  23. ...
  24. >>> d
  25. datetime.date(2011, 7, 4)
  26.  
  27. import datetime
  28.  
  29. d = datetime.date(2011, 7, 2)
  30. while d.weekday() != 0:
  31. d += datetime.timedelta(1)
  32.  
  33. # Getting the closest monday from a given date
  34. closest_monday = pd.date_range(start=date, end=date + offsets.Day(6), freq='W-MON')[0]
  35.  
  36. # Adding a 'ClosestMonday' column with the closest monday for each row in a pandas df using apply
  37. # Require you to have a 'Date' column in your df
  38. def get_closest_monday(row):
  39. return pd.date_range(start=row.Date, end=row.Date + offsets.Day(6), freq='W-MON')[0]
  40.  
  41. df['ClosestMonday'] = df.apply(lambda row: get_closest_monday(row), axis=1)
  42.  
  43. weekday = 0 ## Monday
  44. dt = datetime.datetime.now().replace(hour=0, minute=0, second=0) ## or any specific date
  45. days_remaining = (weekday - dt.weekday() - 1) % 7 + 1
  46. next_dt = dt + datetime.timedelta(days_remaining)
  47.  
  48. from datetime import *
  49. [datetime.today()+timedelta(days=x) for x in range(0,7) if (datetime.today()+timedelta(days=x)).weekday() % 7 == 0]
  50.  
  51. (0 at the end is for next monday, returns current date when run on monday)
  52.  
  53. import datetime
  54.  
  55. def get_next_monday(year, month, day):
  56. date0 = datetime.date(year, month, day)
  57. next_monday = date0 + datetime.timedelta(7 - date0.weekday() or 7)
  58. return next_monday
  59.  
  60. print get_next_monday(2011, 7, 2)
  61. print get_next_monday(2015, 8, 31)
  62. print get_next_monday(2015, 9, 1)
Add Comment
Please, Sign In to add comment