2017-07-31 93 views
-1

月のカレンダーの開始日と終了日を取得するにはどうすればよいですか?iosでfscalenderの最初の日付と最後の日付を取得するにはどうすればよいですか?

スクリーンショットから、私はfscalenderで1匹の2017と31匹のaug 2017を取得する必要がありますか?

私はスクロールし、このメソッドの呼び出しが、毎回、現在の日付を取得

- (void)calendarCurrentPageDidChange:(FSCalendar *)calendar; 
{ 

} 

感謝!

enter image description here

+0

まし答え...................... –

答えて

0

まず日付をゲット

- (void)calendarCurrentPageDidChange:(FSCalendar *)calendar; 
    { 
     NSLog(@"did change to page %@",[self.dateFormatter stringFromDate:calendar.currentPage]); 

    } 
-1

自分では現在の月の最初と最後の日付を取得。 FSCalendarから取得する必要はありません。これについては以下のコードを参照してください。

NDDate *currentDate = //Pass date which you get 
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDateComponents *comp = [gregorian components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:currentDate]; 
[comp setMonth:[comp month]]; 
[comp setDay:1]; 
NSDate *firstDayDate = [gregorian dateFromComponents:comp]; 
[comp setMonth:[comp month]+1]; 
[comp setDay:0]; 
NSDate *lastDayDate = [gregorian dateFromComponents:comp]; 

NSLog(@"First : %@, Last : %@",firstDayDate,lastDayDate); 

このようにして、あなたは最初と最後の日付を取得しています。

+0

私はそれを知っているが、私はfscalenderから私の月を変えたらfs calenderを使って1月31日を取得したい –

+0

これはFSCalendarからDateを取得するか手動で計算するのと全く同じです。しかし、このコードから、あなたはfscalendarから取得している日付から適切な最初と最後の日を取得します。 –

0

あなたはあなたの必要性のためにこれらの2つのNSDateカテゴリのメソッドを使用することができます:あなたは日付を変換する必要があり

- (NSDate *)startDateOfMonth { 
    NSCalendar *current = [NSCalendar currentCalendar]; 
    NSDate *startOfDay = [current startOfDayForDate:self]; 
    NSDateComponents *components = [current components:(NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:startOfDay]; 
    NSDate *startOfMonth = [current dateFromComponents:components]; 
    return startOfMonth; 
} 

- (NSDate *)endDateOfMonth { 
    NSCalendar *current = [NSCalendar currentCalendar]; 
    NSDateComponents *components = [[NSDateComponents alloc] init]; 
    components.month = 1; 
    components.day = -1; 
    NSDate *endOfMonth = [current dateByAddingComponents:components toDate:[self startDateOfMonth] options:NSCalendarSearchBackwards]; 
    return endOfMonth; 
} 

をごFSCalendarNSDateへ:

- (void)calendarCurrentPageDidChange:(FSCalendar *)calendar { 
    NSDate *date = ... //Conversion goes here 

    NSDate *startDateOfMonth = [date startDateOfMonth]; 
    NSDate *endDateOfMonth = [date endDateOfMonth]; 

    // convert back if you need to 
} 
+0

NSDate * date = ... //変換はここにありますか?どの日にパスするか –

+0

どのように現在の日付を取得しましたか? – nayem

+0

それは自動的に今月の負荷です –

0

開始日付を返しますcurrentPageFSCalendarプロパティ現在表示されているページの数 - 月または週を表示しているかどうかによって、月または週の最初の日です。

NSCalendarメソッドを使用して、currentPageで始まる月または週の最終日を見つけます。これを行うにはいくつかの方法があります。例えばNSDateComponentsの値を追加するか、nextDateAfterDate:matchingUnit:value:options:などの「次の」メソッドのいずれかを使用します。

HTH

0
-(void)calendarCurrentPageDidChange:(FSCalendar *)calendar{ 
    [self.calendar selectDate:[self.calendar.currentPage fs_firstDayOfMonth]]; 
    [self.calendar selectDate:[self.calendar.currentPage fs_lastDayOfMonth]]; 
} 
関連する問題