根据当前时间执行IBAction。

时间:2014-07-02 20:42:36

标签: ios objective-c xcode

如何根据当前时间执行两项操作?

例如:如果当前时间在上午8点到下午2点之间,则显示labelA。 如果当前时间在下午2点到6点之间,则显示labelB。

谢谢!

2 个答案:

答案 0 :(得分:1)

为何选择IBAction?就这样做:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.labelA.text = @"It's between 8am and 2pm";
    self.labelB.text = @"It's between 2pm and 6pm";

    NSDate *date = [NSDate date];
    NSCalendar *gregorianCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *dateComps = [gregorianCal components: (NSHourCalendarUnit | NSMinuteCalendarUnit)
                                                  fromDate: date];
    if (dateComps.hour > 8 && dateComps.hour <= 14)
    {
        [self.view addSubview:self.labelA];
    }
    else if (dateComps.hour > 14 && dateComps.hour < 18)
    {
        [self.view addSubview:self.labelB];
    }
}

答案 1 :(得分:0)

使用NSDateComponents将当前时间(从[NSDate date]获得)转换为小时,分钟等组件。然后只需检查小时组件,看看它在哪个范围内并根据该标签采取适当的标签行动。

请参阅:NSDate get year/month/day