博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断当前时间是否在一天的某个时间段内,可设置时,分,秒
阅读量:5012 次
发布时间:2019-06-12

本文共 2663 字,大约阅读时间需要 8 分钟。

- (void)viewDidLoad {    [super viewDidLoad];        NSDateComponents *fromDateComponents = [[NSDateComponents alloc]init];    NSDateComponents *toDateComponents = [[NSDateComponents alloc]init];    [fromDateComponents setHour:6];        // 开始时间-小时    [toDateComponents setHour:18];         // 结束时间-小时    [toDateComponents setMinute:58];       // 结束时间-分钟            [self isBetweenFromDateComponents:fromDateComponents toComponents:toDateComponents];    }/** *  转化为系统当前地区时间 * *  @param date 系统时间 * *  @return 系统当前地区时间 */- (NSDate *)convertSystemLocationDate:(NSDate *)date{    NSTimeZone *zone = [NSTimeZone systemTimeZone];    NSTimeInterval interval = [zone secondsFromGMTForDate:date];    return [date dateByAddingTimeInterval:interval];}/** *  获取当前时间是否在设置的某一个时间段内 * *  @param fromComponents 开始时间 *  @param toComponents   结束时间 * *  @return BOOL */- (BOOL)isBetweenFromDateComponents:(NSDateComponents*)fromComponents toComponents:(NSDateComponents *)toComponents{    NSDate *fromDate = [self getCustomDateeWithDateComponents:fromComponents];    NSDate *toDate = [self getCustomDateeWithDateComponents:toComponents];    // 获取当前时间    NSDate *currDate = [NSDate date];    if ([[self convertSystemLocationDate:currDate] compare:fromDate]== NSOrderedDescending && [[self convertSystemLocationDate:currDate] compare:toDate] == NSOrderedAscending)    {        return YES;    }    return NO;}/** *  根据设置的时间返回一个NSDate类型的时间 * *  @param dateComponents NSDateComponents * *  @return NSDate */- (NSDate *)getCustomDateeWithDateComponents:(NSDateComponents *)dateComponents{    //获取当前时间    NSDate *currentDate = [NSDate date];    NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];    NSDateComponents *currentComps = [[NSDateComponents alloc] init];        NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;        currentComps = [currentCalendar components:unitFlags fromDate:currentDate];        //设置当天的某个点    NSDateComponents *resultComps = [[NSDateComponents alloc] init];    [resultComps setYear:[currentComps year]];    [resultComps setMonth:[currentComps month]];    [resultComps setDay:[currentComps day]];    [resultComps setHour:[dateComponents hour]];    [resultComps setMinute:[dateComponents minute]];        NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];    NSDate *resultDate = [self convertSystemLocationDate:[resultCalendar dateFromComponents:resultComps]];        return resultDate;}

 

转载于:https://www.cnblogs.com/joesen/p/4447780.html

你可能感兴趣的文章
第10章 使用Apache服务部署静态网站
查看>>
关于给予webApp框架的开发工具
查看>>
c语言编写的生成泊松分布随机数
查看>>
Maven入门笔记
查看>>
iOS webView的常见属性和方法
查看>>
理解position:relative
查看>>
Codeforces Round #344 (Div. 2) Messager KMP的应用
查看>>
20145308刘昊阳 《Java程序设计》第4周学习总结
查看>>
js倒计时
查看>>
EasyUI datagrid 格式 二
查看>>
Android虹软人脸识别sdk使用工具类
查看>>
UI:基础
查看>>
浅谈 @RequestParam 和@PathVariable
查看>>
设计模式之---装饰器设计模式
查看>>
基于WordNet的英文同义词、近义词相似度评估及代码实现
查看>>
Equation漏洞混淆利用分析总结(上)
查看>>
shell学习1shell简介
查看>>
Qt 【无法打开 xxxx头文件】
查看>>
JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)
查看>>
三层架构(我的理解及详细分析)
查看>>