Ich habe eine Verpflichtung, wenn ich das bestimmte Datum geben, wie zum Beispiel:Woher weiß man, in welcher Woche welcher Monat?
Typ in
2016-02-01
sollte2016-2-1
zurückkehren, bedeuten2016-02-01
gehört2016
Jahren ersten Woche FEBRUARTyp in
2016-09-01
sollte2016-8-5
zurückkehren, bedeutet2016-09-01
bis2016
Jahre fünften Woche August gehört.Wenn
2016-01-01
nicht Montag ist, sollte das Rückkehrjahr2015-x-x
sein.
Achtung, bei es die Formel-Modus von Montag bis Sonntag ist eine Woche. Wie 2016-04
, 2016-04-04
->2016-04-10
ist April erste Woche. 2016-04-01
->2016-04-03
gehört nicht zu den Aprilwochen, es gehört März.
Ich versuchte mit NSCalendar, aber die Anforderung ist eigenartig, ich habe keine Ahnung, damit umzugehen, also könnte jemand einen Gedankengang dafür bieten?
Vielen Dank im Voraus.
Mein versucht Code:
In meinem 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;
}
In meinem 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);
}
Können Sie Teilen Sie uns Ihren aktuellen Code oder was auch immer Sie versucht haben? – viral
@iOS App Dev, ich poste meinen Code in meiner Frage, zuerst benutze ich NSCalender, aber ich fand es nicht meine Anforderung. – lme