2017-07-31 219 views

回答

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

我知道,但我使用fs calener作为我的应用程序。当我从fscalender更改我的月份时,我想使用fs日历得到1&31日期 –

+0

这与您从FSCalendar获取日期或手动计算完全相同。但是从这段代码中,您可以从fscalendar获得的日期中获得适当的第一天和最后一天。 –

0

您可以使用您的需求,这两个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

FSCalendar属性currentPage返回起始日期当前显示的页面 - 这是每月或每周的第一天,具体取决于您是显示一个月还是一周。

然后使用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]]; 
} 
相关问题