0

私は iPhone 用の iOS アプリケーションを作成しています。特定の時間に非表示にして特定の時間に表示する 2 つのラベルが必要です。Label1 は午前 6 時から午後 6 時の間に表示され、Label2 は午後 6 時から午前 6 時の間に表示されます。

4

2 に答える 2

1
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [gregorian components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:today];

NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSInteger second = [components second];

これで時間が決まりました。通常のロジックを追加するだけです。フォーマットを変更したい場合は、これを行います...

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"hh:mm a"];
      // another is   [formatter setDateFormat:@"hh:mm:ss"]; 
 NSLog(@"Current Date: %@", [formatter stringFromDate:today]);
于 2013-06-04T13:13:26.057 に答える
1

[NSDate date];現在の日付を取得します.date fromatterを使用して必要なfromatを取得し、setText:メソッドを使用してテキストを設定します.タイマーで起動してテキストを設定します

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"EEEE MMMM d, YYYY"];
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]);
[yourLabel setText:[dateFormatter stringFromDate:[NSDate date]]];

編集

完全なコード、これを試してください

-(void)showtext
{
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"hh:mm:ss"];
    NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]);
    if(  [self compareTimeIsbetween6])
    {
        [self.date1Label setHidden:NO];
        [self.date2Label setHidden:YES];
      [self.date1Label setText:[dateFormatter stringFromDate:[NSDate date]]];

    }
    else
    {
        [self.date1Label setHidden:YES];
        [self.date2Label setHidden:NO];
        [self.date2Label setText:[dateFormatter stringFromDate:[NSDate date]]];

    }
}

-(BOOL)compareTimeIsbetween6
{
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:[NSDate date]];
    NSInteger currentHour = [components hour];
    NSInteger currentMinute = [components minute];
    NSInteger currentSecond = [components second];

    if (currentHour < 6 || (currentHour > 18 || (currentHour == 18 && (currentMinute > 0 || currentSecond > 0)))) {
        return YES;
    }
    else
    {
        return NO;
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showtext) userInfo:nil repeats:YES]; // Do any additional setup after loading the view, typically from a nib.
}

.h

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *date1Label;
@property (weak, nonatomic) IBOutlet UILabel *date2Label;
于 2013-06-04T13:15:41.583 に答える