2
我創建一個每週日曆視圖,其中的一部分是計算顯示的星期的第一天。我也希望保存的日期有第一秒的時間,所以我試圖確保日期的hh:mm:ss都是00:00:00。NSDateComponents給出奇數結果
我有以下代碼,在大多數情況下工作正常,但在日期大約在一年的開始或結束時給出看似隨機的結果。
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:self.selectedDate];
NSDateComponents *addcomps = [[NSDateComponents alloc] init];
[addcomps setDay:1-[comps weekday]];
NSDate *fixedDate = [appDelegate.gregorian dateByAddingComponents:addcomps toDate:self.selectedDate options:0];
////FIXED DATE IS NOW FIRST DAY OF DISPLAYED WEEK
comps = [appDelegate.gregorian components:unitFlags fromDate:fixedDate]; ///fixedDate = 2010-01-03 02:51:25 -0600
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
self.savedBeginningDate = [appDelegate.gregorian dateFromComponents:comps]; ///self.savedBeginningDate = 2011-01-09 00:00:00 -0600
不知何故設置HH:MM:SS爲00:00:00,從2010年1月3日,更改日期1月11日,2009年
我已經添加了dateFromComponents的結果評論在這些線上。這種奇怪的行爲似乎只發生在年份周圍,並且在我見過的其他任何一週都不會發生。
感謝您的幫助!