def daySec(diff):
return 60*60*24*diff
def weekDays(dt=None):
if not dt:
dt = NSDate.date() # use today
cal = NSCalendar.currentCalendar()
dc = cal.components_fromDate_(NSWeekdayCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit, dt)
normDt = cal.dateFromComponents_(dc) # get the day-rounded date
shift = dc.weekday() - cal.firstWeekday()
firstDt = normDt.dateByAddingTimeInterval_(daySec(-shift))
lastDt = normDt.dateByAddingTimeInterval_(daySec(-shift+7)) # up to next week's first day midnight
return (firstDt, lastDt)
2 回答
使用NSDateComponents获取工作日,从星期日的1到7 .
获得工作日编号后,计算它与一周中第一天之间的差异 . 例如,如果你认为星期一(2)是第一天,那么它早了多少天(或者它会是多少天) . 如果工作日是4(周三),则差值为2.这意味着如果您从原始日期减去两天,您将获得它所在的第一天 .
检查documentation for details,因为您需要处理这些对象还包括时间属性的事实 . 如果可以,当您只对日期和日期比较感兴趣时,请确保时间值始终为零 .
好的,在这里,它是一个完成这项工作的python片段