我想使用週末的日期在NSLocalNotification中使用它,但我不知道如何獲取它,我試圖用數學方法來做,但有時候我得到的數字大於本月的日子。如何獲取週末的日期?
回答
你有關獲取日期第一個問題就可以解決的:
NSCalendar *calender=[NSCalendar currentCalendar];
NSRange daysRange=[calender rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];
NSUInteger numberOfDaysInMonth=daysRange.length;
//NSLog(@"num of days in current month : %ld",numberOfDaysInMonth);
NSDateComponents *dateComponents = [calender components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
NSInteger dayCount=[dateComponents weekday];
//if today itself is saturday what you want to display? today or upcoming one... then do small changes here, for sat & sun.
NSInteger daysForSaturday=7-dayCount;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd"];
NSUInteger todaysDate = [[formatter stringFromDate:[NSDate date]]integerValue];
// NSLog(@"Today is : %@",todaysDate);
NSUInteger comingSaturday=todaysDate+daysForSaturday;
if (comingSaturday>numberOfDaysInMonth) {
comingSaturday-=numberOfDaysInMonth;
}
NSUInteger comingSunday=comingSaturday+1;
NSLog(@"Coming.. Sat is : %ld, Sun in : %ld",comingSaturday, comingSunday);
這就是我所做的,但你可能會得到一天中的天數大於一個月中的天數 –
:(我堅持嘗試這種情況...等待我會發布正確的結果,即使月變化和即使是年份的變化...... –
@ZiadTamim:請檢查這段代碼,我已經檢查了這段代碼的下列情況:1.考慮自動轉移到下個月2.對於閏年如果你仍然發現一些錯誤,讓我知道.. :) –
需要注意的是IOS支持多種日曆,我不知道,如果使用這些日曆的所有文化都有周末,如果一個概念,他們總是意味着有兩天。
你還需要處理一些事情:即使在使用格里曆的國家,一週也可能從星期一或星期日開始。
但是,如果我們假設一個週末等同於週六和週日,這可能對你有所幫助:
NSDate *referenceDate = [NSDate date];
NSDate *startOfThisWeek;
NSDate *saturday;
NSUInteger backupStartWeekday = [[NSCalendar currentCalendar] firstWeekday];
[[NSCalendar currentCalendar] setFirstWeekday:1]; // ensure week begins at sunday
[[NSCalendar currentCalendar] rangeOfUnit:NSWeekCalendarUnit
startDate:&startOfThisWeek
interval:NULL
forDate:referenceDate];
NSDateComponents *components = [[NSDateComponents alloc] init];
components.day = [[NSCalendar currentCalendar] maximumRangeOfUnit:NSWeekdayCalendarUnit].length; //the start of the next week
components.day = components.day - 2;
saturday = [[NSCalendar currentCalendar] dateByAddingComponents:components
toDate:startOfThisWeek
options:0];
[[NSCalendar currentCalendar] setFirstWeekday:backupStartWeekday];
- 1. 獲取日期到週末
- 2. 在php中獲取週末日期
- 3. 獲取下週日的日期(跳過週末)在HTML
- 4. 如何在SQL中獲取當年的所有周末日期?
- 5. 如何獲取給定週數和年份的首末日期?
- 6. 確定日期是週日/週末java
- 7. 如何在任何給定的日期在本週獲得週末日?
- 8. 如果輸入是日期和週末日(週日,週一,週三,週三,週四,週五或週四),如何計算週末日期
- 9. SQL:如何獲取周開始日期和周結束日期
- 10. Javascript「週末」日期計算?
- 11. 我如何獲得日期範圍內的週末天數
- 12. SQL Server:週末以週五和上週末爲結束日期
- 13. 獲取下5個日期根據數據的最後日期排除週末
- 14. 獲取昨天的日期,如果星期一得到週末範圍
- 15. 獲取天數兩個日期之間不包括週末
- 16. 獲取剩餘日期,不包括週末
- 17. MySQL:如何使用當前日期獲取「本週的日期」?
- 18. Excel - 如何獲取日期是一週中的特定日期?
- 19. 如何獲取本週的開始日期和結束日期?
- 20. javascript如何獲取下週的日期和比較日期
- 21. SQL動態週末/ 3日日期
- 22. 獲取日期與周
- 23. 如何在javascript中獲取週末?
- 24. SQL更換日期值,如果日期是假期或週末
- 25. 將數據幀日期行轉換爲週末/非週末值
- 26. java日曆 - 獲取最後5天的一週(沒有周末)
- 27. JavaScript:獲取週日過去的日期
- 28. 如何在java中的兩個日期之間獲得除週末或週六或週日外的每一天?
- 29. 週末日曆
- 30. 不包括日期時間的週末
我怕你的描述不足以明白你想要什麼。但看到NSCalendar - 它會給你關於日期的各種信息。 –
請提供您所指的那個不起作用的代碼,並告訴我們您期望它做什麼。這樣我們可以幫助你做到最好。我最好的猜測是你想從當前日期確定下一個星期六? – lnafziger
試試這個http://www.roseindia.net/tutorial/iphone/examples/Current-Date-iPhone-SDK.html,它可以解決你的問題。 – Girish