【Objective-C】時間によって照度を変更する方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//時間の設定値(アプリの設定で入力できるようにした)
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *startTime = [[userDefaults stringForKey: @"startTime"] stringByReplacingOccurrencesOfString:@":" withString:@""];
NSString *endTime = [[userDefaults stringForKey: @"endTime"] stringByReplacingOccurrencesOfString:@":" withString:@""];
 
NSDate *date = [NSDate date]; // 現在の日時を得る
NSCalendar *calendar = [NSCalendar currentCalendar]; // カレントカレンダー取得
NSCalendarUnit unit = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; //時分秒を指定
NSDateComponents *dc = [calendar components:unit fromDate:date];
 
NSString *hh = [NSString stringWithFormat:@"%02ld",[dc hour]];
NSString *mm = [NSString stringWithFormat:@"%02ld",[dc minute]];
NSString *ss = [NSString stringWithFormat:@"%02ld",[dc second]];
 
NSString *now = [[hh stringByAppendingString:mm] stringByAppendingString:ss];
 
if (startTime.intValue < endTime.intValue) {
    // 日をまたがない場合
    if (startTime.intValue <= now.intValue && now.intValue <= endTime.intValue) {
        //処理
        [[UIScreen mainScreen] setBrightness:0.0f];
    }else{
        [[UIScreen mainScreen] setBrightness:1.0f];
    }
}else{
    // 日をまたぐ場合
    if (startTime.intValue <= now.intValue || now.intValue <= endTime.intValue) {
        //処理
        [[UIScreen mainScreen] setBrightness:0.0f];
    }else{
        [[UIScreen mainScreen] setBrightness:1.0f];
    }
}
タイトルとURLをコピーしました