首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSDate创建事件

使用NSDate创建事件
EN

Stack Overflow用户
提问于 2011-02-18 18:10:49
回答 2查看 383关注 0票数 0

有没有办法为NSDate创建事件?以下是我的代码

代码语言:javascript
复制
    NSDate *date = [NSDate date];       
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:@"MMMM d, yyyy"];
    NSString *dateStr = [dateFormatter stringFromDate:date]; 
    myDate.text = dateStr;

例如,如果日期=2月12日;myDate .text =@“母亲节”;

像这样的东西

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-18 18:36:45

当然是了。您必须使用NSDateComponents将日期拆分为日和月

你可以像这样写一个方法:

代码语言:javascript
复制
- (BOOL)date:(NSDate *)date isSameAsDay:(NSInteger)day andMonth:(NSInteger)month {
    NSUInteger dateFlags = NSDayCalendarUnit | NSMonthCalendarUnit;
    NSDateComponents *components = [[NSCalendar currentCalendar] components:dateFlags fromDate:date];
    if ([components day] == day && [components month] == month) {
        return YES;
    }
    return NO;
}

你可以像这样使用它

代码语言:javascript
复制
if ([self date:[NSDate date] isSameAsDay:12 andMonth:2]) {
   myDate.text = @"Mother Day";
}
票数 1
EN

Stack Overflow用户

发布于 2011-02-18 18:38:26

这应该可以做到:

代码语言:javascript
复制
    NSDate *today = [NSDate date]; // Get ref to todays date
    NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *weekdayComponents =
    [gregorian components:(NSWeekdayOrdinalCalendarUnit | NSWeekdayCalendarUnit | NSMonthCalendarUnit) fromDate:today];
    NSInteger weekday = [weekdayComponents weekday]; // Sun == 1, Mon == 2, Tue...
    NSInteger weekdayOrdinal = [weekdayComponents weekdayOrdinal]; // First weekday month == 1 etc...
    NSInteger month = [weekdayComponents month];
    NSLog (@"%i %i %i", weekday, weekdayOrdinal, month);

    // Mothers day is every second Sunday of May so weekday == 1, weekdayOrdinal == 2, month == 5
    if ((weekday == 1) && (weekdayOrdinal == 2) && (month == 5)) {
        NSLog (@"It's mothers day!");
    }
    [gregorian release];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5040000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档