ios - 如何在iPhone中检索给定月份的月份的最后日期

标签 ios date monthcalendar

我想在iPhone应用程序中检索给定月份的最后日期。谁能告诉我如何实现这一目标?我看到了一些关于stackoverflow的解决方案,但它们只提供了本月的最后一天。

谢谢。

更新:

    +(NSString*)getLastDateOfMonth:(NSString *)monthYearString {

    //NSString *inputDate = [NSString stringWithFormat:@"%@ %@",@"01",monthYearString];
    NSString *inputDate = [NSString stringWithFormat:@"%@ %@",@"01",@"May 2012"];
    NSLog(@"Input date:- %@",inputDate);

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"dd MMM yyyy"];
    NSDate *date = [dateFormatter dateFromString:inputDate];

    NSCalendar *gregCalendar=[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];

    NSDateComponents *components=[gregCalendar components:NSMonthCalendarUnit|NSYearCalendarUnit fromDate:date];
    NSInteger month=[components month];
    NSInteger year=[components year];

    if (month==12) {
        [components setYear:year+1];
        [components setMonth:1];
    }
    else {
        [components setMonth:month+1];
    }
    [components setDay:1];

    NSDate *lastDate = [[gregCalendar dateFromComponents:components] dateByAddingTimeInterval:0];

    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc]init];
    [outputFormatter setDateFormat:@"MM/dd/yyyy"];
    NSString *lastDateOfMonth = [outputFormatter stringFromDate:lastDate];

    return lastDateOfMonth;

}

如果使用此代码,则在控制台中显示错误的输出,如下所示
    Input date:- 01 May 2012
LAst DAte in Month:- 06/01/2012

最佳答案

您可以使用此功能:-

 NSDate currDate=[NSDate date];

NSDate *getLastDateMonth(NSDate *currDate)
{

    NSCalendar *gregCalendar=[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];

    NSDateComponents *components=[gregCalendar components:NSMonthCalendarUnit|NSYearCalendarUnit fromDate:currDate];
    NSInteger month=[components month];
    NSInteger year=[components year];

    if (month==12) {
        [components setYear:year+1];
        [components setMonth:1];
    }
    else {
        [components setMonth:month+1];
    }
    [components setDay:1];

    return [[gregCalendar dateFromComponents:components] dateByAddingTimeInterval:0];
    }

关于ios - 如何在iPhone中检索给定月份的月份的最后日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671372/

相关文章:

ios - 大数组粘贴到 Xcode Playground ,项目停止运行

ios - Collection View 单元格内容未显示

iphone - 可编辑的 UITableView

java - 玩!框架 CRUD 模块 : adding default values and change date format?

c# - 可以设置 monthCalendar 以显示当前月份和前 2 个月吗?

function - 如何从Presto中的日期获取月份名称

c# - 月历显示日期为周一至周日

objective-c - 如何在代码中引用不同的 UIButton

c# - 每周汇总值的 MySQL 查询

javascript - 使用 Date 对象获取季度的周数