早上好,中午好,下午好,晚上好

/**

*  将时间点转化成日历形式

*/

- (NSDate *)getCustomDateWithHour:(NSInteger)hour {

//获取当前时间

NSDate * destinationDateNow = [NSDate date];

NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

NSDateComponents *currentComps = [[NSDateComponents alloc] init];

NSInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

currentComps = [currentCalendar components:unitFlags fromDate:destinationDateNow];

//设置当前的时间点

NSDateComponents *resultComps = [[NSDateComponents alloc] init];

[resultComps setYear:[currentComps year]];

[resultComps setMonth:[currentComps month]];

[resultComps setDay:[currentComps day]];

[resultComps setHour:hour];

NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

return [resultCalendar dateFromComponents:resultComps];

}



/**

*  获取时间段

*/

- (NSString *)getTheTimeBucket {

//    NSDate * currentDate = [self getNowDateFromatAnDate:[NSDate date]];

NSDate * currentDate = [NSDate date];

if ([currentDate compare:[self getCustomDateWithHour:0]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:9]] == NSOrderedAscending) {

return @"早上好";

} else if ([currentDate compare:[self getCustomDateWithHour:9]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:11]] == NSOrderedAscending) {

return @"上午好";

} else if ([currentDate compare:[self getCustomDateWithHour:11]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:13]] == NSOrderedAscending) {

return @"中午好";

} else if ([currentDate compare:[self getCustomDateWithHour:13]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:18]] == NSOrderedAscending) {

return @"下午好";

} else {

return @"晚上好";

}

}



/**

*  [self getTheTimeBucket] 这样就得到时间段了 扩展 通过[NSDate date]获得的时间可能与当前的系统时间不一样,这是因为时区时差的缘故

*  考虑时区,获取准备的系统时间方法

*/

- (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate {

//设置源日期时区

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];//或GMT

//设置转换后的目标日期时区

NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];

//得到源日期与世界标准时间的偏移量

NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];

//目标日期与本地时区的偏移量

NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];

//得到时间偏移量的差值

NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;

//转为现在时间

NSDate* destinationDateNow = [[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate];

return destinationDateNow;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容