我有一個要求,如果我給特定的日期,如:如何知道給定的日期是哪個月的哪個星期?
鍵入
2016-02-01
,應返回2016-2-1
,意味着2016-02-01
屬於2016
年的二月的第一週。鍵入
2016-09-01
,應返回2016-8-5
,意味着2016-09-01
屬於2016
年月的第五週。如果
2016-01-01
不是星期一,返回年份應該是2015-x-x
。
注意,在那裏的公式模式是從週一到週日爲一個星期。 如2016-04
,2016-04-04
- >2016-04-10
是四月的第一週。 2016-04-01
- >2016-04-03
不屬於四月的周,它屬於三月。
我試過使用NSCalendar,但要求是奇特的,我不知道處理它,所以,有人可以提供一些思路呢?
在此先感謝。
我試過代碼:
在我Util.m:
+ (NSString *)getCustomMonthAndWeek:(NSString *)formatDateStr {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date= [[NSDate alloc] init];
date = [formatter dateFromString:formatDateStr];
NSCalendar *calen = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *dateCom = [calen components:(NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitWeekOfMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];
NSString *ret_str = @"";
ret_str = [[NSString alloc] initWithFormat:@"%ld-%ld-%@", (long)dateCom.year, (long)dateCom.month, dateCom.weekOfMonth];
return ret_str;
}
在我的VC:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *string = [Util getCustomMonthAndWeek:@"2016-04-02"]; // Here prints 2016-4-1, is not my requirement, you see my Attention.
NSLog(@"%@", string);
}
你能與我們分享您的當前代碼或您嘗試過的任何內容? – viral
@iOS App Dev,我在我的問題中發佈我的代碼,起初我使用NSCalender,但是我發現它不符合我的要求。 – lme