2

日付が月曜日かどうかを調べています。

これを行うには、次のように進めます。

#define kDateAndHourUnitsComponents NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];

// for test and debug purpose
NSDateComponents* b = [calendar components:kDateAndHourUnitsComponents fromDate:retDate];
int a=[[calendar components:kDateAndHourUnitsComponents fromDate:theDate] weekday];
// -----------

if ([[calendar components:kDateAndHourUnitsComponents fromDate:theDate] weekday] == EKMonday) DoThis....

しかし、これは機能しません... a と b には有用なものが含まれていません (a は 2147483647 に等しい)。

[calendar components:NSWeekdayCalendarUnit fromDate:retDate]私はまた、その場合、もはや役に立たないものをどのように使用できるのだろうか...

私はまた、プロセスを確認するこれを見つけました: どの曜日が何曜日であるかを確認する方法 (つまり、火曜日、金曜日?) と 2 つの NSDates を比較する方法は?

私は何を取りこぼしたか ?

4

1 に答える 1

4

ここで、これは機能し、intを介して日数を返します:7 =土、1 =日、2=月...

目的C

NSDate* curDate = [NSDate date];
int dayInt = [[[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate: curDate] weekday];

SWIFT 4.2

曜日を確認したい日付を作成します

let dateComponents = DateComponents(
    year: 2019,
    month: 2 /*FEB*/,
    day: 23 /*23rd day of that month */
)

現在のカレンダーを取得します。

let cal = Calendar.current

カレンダーを使用して、ビルドアップ日が有効な日付であるかどうかを確認します

guard let date = cal.date(from: dateComponents ) else {
    // The date you build up wasn't a valid day on the calendar
    return
}

//Now that your date is validated, get the day of the week

let weekdayIndex = cal.component(.weekday, from: date)

'weekdayIndex'が整数であることに気付くでしょう。文字列にしたい場合は、次のようにすることができます。

if let weekdayName = DateFormatter().weekdaySymbols?[ weekdayIndex - 1] {
    print("The weekday for your date is :: \(weekdayName)")
}

もちろん、独自の日付を作成するlet date = Date()代わりに、現在の曜日を取得するために使用することもできます。

于 2011-01-23T00:27:11.370 に答える