から取得すると、WeekOfMonth
を日付から取得する際に少し問題があります。これはサンプルコードです。 iOS:dateOfMonthを日付の問題
NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
[dateformate setDateFormat:@"dd/MM/yyyy"]; // Date formater
NSDate *dateTest1 = [dateformate dateFromString:@"25/07/2016"]; //Week no: 5
NSDate *dateTest2 = [dateformate dateFromString:@"01/08/2016"]; //Week no: 1
NSDate *dateTest3 = [dateformate dateFromString:@"08/08/2016"]; //Week no: 2
NSDate *dateTest4 = [dateformate dateFromString:@"15/08/2016"]; //Week no: 3
NSDate *dateTest5 = [dateformate dateFromString:@"22/08/2016"]; //Week no: 4
NSDate *dateTest6 = [dateformate dateFromString:@"29/08/2016"]; //Week no: 5
NSDate *dateTest7 = [dateformate dateFromString:@"05/09/2016"]; //Week no: 6
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest1];
dateString = [dateformate stringFromDate:dateTest1];
NSLog(@"dateTest1 -> %@",dateString); //output : dateTest1 -> 25/07/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 4
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest2];
dateString = [dateformate stringFromDate:dateTest2];
NSLog(@"dateTest2 -> %@",dateString); //output : dateTest2 -> 01/08/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 1
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest3];
dateString = [dateformate stringFromDate:dateTest3];
NSLog(@"dateTest3 -> %@",dateString); //output : dateTest3 -> 08/08/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 2
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest4];
dateString = [dateformate stringFromDate:dateTest4];
NSLog(@"dateTest4 -> %@",dateString); //output : dateTest4 -> 15/08/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 3
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest5];
dateString = [dateformate stringFromDate:dateTest5];
NSLog(@"dateTest5 -> %@",dateString); //output : dateTest5 -> 22/08/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 4
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest6];
dateString = [dateformate stringFromDate:dateTest6];
NSLog(@"dateTest6 -> %@",dateString); //output : dateTest6 -> 29/08/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 5
components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:dateTest7];
dateString = [dateformate stringFromDate:dateTest7];
NSLog(@"dateTest7 -> %@",dateString); //output : dateTest7 -> 05/09/2016
NSLog(@"Week no: %ld",(long)[components weekOfMonth]); //output : Week no: 2
あなたがdateTest1
を見ることができるように
Week no = 5
とNOT
Week no = 4
でなければなりません。それ以外の日は、私が見ているように問題はなく、あなたが見ることができます。
は、私はあなたがweekOfYearを得ることができ、コードの上に使用して私の
FFCalendar
適切
https://github.com/fggeraissate/FFCalendar
感謝を働いているこのソリューションを作りました。 weekOfMonthを使用して私に依存しない、それはFFCalendarから異なります。 FFWeekCalendarViewのdateChangedメソッドでは、WeekOfMonthで正しく動作するため、WeekOfMonthを正しく設定する必要があります。私はFFCalendarでweekOfMonthではなくweekOfYearを使用できるとは思わない。 – Bruno
申し訳ありません、今私は理解しています!それはとてもうまくいく。ありがとうございます – Bruno
月の戻り値は1から52または53を返します。 –