質問

現在の週の最初と最後の日を取得するにはどうすればよいですか?必要なのは、NSDateプロパティを使用してオブジェクトのセットをフィルタリングし、現在の週に表示されるオブジェクトのみを残してから、日ごとにフィルタリングする方法です。また、ローカライズされた曜日名を取得する方法が必要です。

NS
役に立ちましたか?

解決 2

わかりました、ここでは、仕事をするPythonスニペット

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)

他のヒント

NSDateComponentsを使用して、曜日を取得します。これは、日曜日の1から7までです。

平日番号を取得したら、それと週の最初の曜日との差を計算します。たとえば、月曜日(2)が最初の日であると考えた場合、何日前だったか(またはそうだった)です。曜日が4(水)の場合、差は2です。つまり、元の日付から2日を引くと、その週の最初の曜日が取得されます。

ドキュメントで詳細を確認してください 、これらのオブジェクトには時間属性も含まれているという事実に対処する必要があるためです。可能であれば、日付と日付の比較のみに関心がある場合は、時刻値が常にゼロであることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top