今日が今年の何日目かを知りたいです。たとえば、今日が 2012 年 3 月 15 日の場合、75(31 + 29 + 15) を取得する必要があります。または、単純に、今日から今年の Jan01 までの日数を表すこともできます。
質問する
2407 次
4 に答える
13
ordinalityOfUnit
のメソッドを使用してNSCalendar
、年の日付を取得します。NSDayCalendarUnit inUnit:NSYearCalendarUnit
迅速
let calendar: Calendar = .autoupdatingCurrent
let dayOfTheYear = calendar.ordinality(of: .day, in: .year, for: Date())
Objective-C
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *today = [NSDate date];
NSInteger dc = [currentCalendar
ordinalityOfUnit:NSDayCalendarUnit
inUnit:NSYearCalendarUnit
forDate:today
];
2012 年 9 月 25 日に 269 を与える
于 2012-09-25T14:57:37.697 に答える
2
を使用すると、今年の現在の日を示す必要NSDateComponents
があるコンポーネントを収集できます。NSDayCalendarUnit
次の行に沿ったものは、ニーズに合うはずです。
//create calendar
NSCalendar *calendar = [NSCalendar currentCalendar];
//set calendar time zone
[calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
//gather date components
NSDateComponents *components = [calendar components:NSDayCalendarUnit fromDate:[NSDate date]];
//gather time components
NSInteger day = [components day];
于 2012-09-25T13:51:34.730 に答える
1
データ形式リファレンスによると、指定子を使用しD
て年間通算日を表すことができます。日付フォーマッタは、計算を実行したい場合にはあまり役に立ちませんが、年間通算日を表示したいだけであれば、おそらく最も簡単な方法です。コードは次のようになります。
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setCalendar:cal];
[df setDateFormat:@"DDD"]; // D specifier used for day of year
NSString *dayOfYearString = [df stringFromDate:someDate]; // you choose 'someDate'
NSLog(@"The day is: %@", dayOfYearString);
于 2012-09-25T14:20:52.893 に答える
0
NSDate
、NSDateComponents
およびクラスを使用するNSCalendar
と、前年の最後の日から今日までの日数を簡単に計算できます (これは、今年の今日の数を計算するのと同じです)。
// create your NSDate and NSCalendar objects
NSDate *today = [NSDate date];
NSDate *referenceDate;
NSCalendar *calendar = [NSCalendar currentCalendar];
// get today's date components
NSDateComponents *components = [calendar components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:today];
// changing the date components to the 31nd of December of last year
components.day = 31;
components.month = 12;
components.year--;
// store these components in your date object
referenceDate = [calendar dateFromComponents:components];
// get the number of days from that date until today
components = [calendar components:NSDayCalendarUnit fromDate:referenceDate toDate:[NSDate date] options:0];
NSInteger days = components.day;
于 2012-09-25T14:32:11.620 に答える