NSDate是星期几和农历 是否在一个时间段判断 时间各种比较
2016-07-07 14:54
441 查看
UIDatePicker使用技巧
1、怎么改frame的宽高?
UIDatePicker的三个高度,162、180、216
2、判断NSDate是星期几
3、判断NSDate的农历
1、怎么改frame的宽高?
UIDatePicker的三个高度,162、180、216
UIDatePicker*_datePicker = [[UIDatePicker alloc]init]; _datePicker.frame = CGRectMake(20, 100, 280, 162);
2、判断NSDate是星期几
- (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"星期天", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六", nil]; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"]; [calendar setTimeZone: timeZone]; NSCalendarUnit calendarUnit = NSCalendarUnitWeekday; NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate]; return [weekdays objectAtIndex:theComponents.weekday]; }
3、判断NSDate的农历
-(NSString*)getChineseCalendarWithDate:(NSDate *)date{ NSArray *chineseYears = [NSArray arrayWithObjects: @"甲子", @"乙丑", @"丙寅", @"丁卯", @"戊辰", @"己巳", @"庚午", @"辛未", @"壬申", @"癸酉", @"甲戌", @"乙亥", @"丙子", @"丁丑", @"戊寅", @"己卯", @"庚辰", @"辛己", @"壬午", @"癸未", @"甲申", @"乙酉", @"丙戌", @"丁亥", @"戊子", @"己丑", @"庚寅", @"辛卯", @"壬辰", @"癸巳", @"甲午", @"乙未", @"丙申", @"丁酉", @"戊戌", @"己亥", @"庚子", @"辛丑", @"壬寅", @"癸丑", @"甲辰", @"乙巳", @"丙午", @"丁未", @"戊申", @"己酉", @"庚戌", @"辛亥", @"壬子", @"癸丑", @"甲寅", @"乙卯", @"丙辰", @"丁巳", @"戊午", @"己未", @"庚申", @"辛酉", @"壬戌", @"癸亥", nil]; NSArray *chineseMonths=[NSArray arrayWithObjects: @"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月", @"九月", @"十月", @"冬月", @"腊月", nil]; NSArray *chineseDays=[NSArray arrayWithObjects: @"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十", @"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"二十", @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十", nil]; NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese]; unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; NSDateComponents *localeComp = [localeCalendar components:unitFlags fromDate:date]; NSLog(@"%zd_%zd_%zd",localeComp.year,localeComp.month,localeComp.day); NSString *y_str = [chineseYears objectAtIndex:localeComp.year-1]; NSString *m_str = [chineseMonths objectAtIndex:localeComp.month-1]; NSString *d_str = [chineseDays objectAtIndex:localeComp.day-1]; NSString *chineseCal_str =[NSString stringWithFormat: @"%@_%@_%@",y_str,m_str,d_str]; return chineseCal_str; }
/** * *更具日期星期获取今天是星期几 */ + (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"星期天", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六", nil]; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"]; [calendar setTimeZone: timeZone]; NSCalendarUnit calendarUnit = NSCalendarUnitWeekday; NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate]; return [weekdays objectAtIndex:theComponents.weekday]; }
// 判断当前时间是否在fromHour和toHour之间。如,fromHour=8,toHour=23时,即为判断当前时间是否在8:00-23:00之间 + (BOOL)isBetweenFromHour:(NSInteger)fromHour toHour:(NSInteger)toHour { NSDate *date8 = [Tools getCustomDateWithHour:fromHour]; NSDate *date23 = [Tools getCustomDateWithHour:toHour]; NSDate *currentDate = [NSDate date]; if ([currentDate compare:date8]==NSOrderedDescending && [currentDate compare:date23]==NSOrderedAscending) { NSLog(@"该时间在 %ld:00-%ld:00 之间!", fromHour, toHour); return YES; } return NO; } //@brief 生成当天的某个点(返回的是伦敦时间,可直接与当前时间[NSDate date]比较) @param hour 如hour为“8”,就是上午8:00(本地时间) + (NSDate *)getCustomDateWithHour:(NSInteger)hour { //获取当前时间 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:hour]; NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; return [resultCalendar dateFromComponents:resultComps]; }
//时间比较 + (NSTimeInterval)getTimeIntervalWithDateString:(NSString *)dateString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *date = [formatter dateFromString:dateString]; return date.timeIntervalSince1970; } + (NSString *)getDateStringWithTimeInterval:(NSTimeInterval)timeInterval{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval]; return [formatter stringFromDate:date]; } + (NSDate *)getDateWithDateString:(NSString *)dateString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; return [formatter dateFromString:dateString]; } + (NSDate *)getLocaleDate{ NSDate *date = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate: date]; NSDate *localeDate = [date dateByAddingTimeInterval: interval]; return localeDate; } + (NSString *)getDateWithTDateString:(NSDate *)dateString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm"; NSString *dateStr = [formatter stringFromDate:dateString]; NSString *dateMstr = [dateStr substringFromIndex:11]; NSString *dateMstr1 = [dateStr substringToIndex:10]; NSString *dateMstr2 = [NSString stringWithFormat:@"%@T%@",dateMstr1,dateMstr]; return dateMstr2; } + (NSString *)getDateStringWithDate:(NSDate *)dateString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; return [formatter stringFromDate:dateString]; } + (NSString *)stringFromDate:(NSDate *)date{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM-dd"]; NSString *destDateString = [dateFormatter stringFromDate:date]; return destDateString; }
相关文章推荐
- android developer tiny share-20160701
- android developer tiny share-20160701
- java运行时数据区域
- ST Visual Programmer批量烧写教程
- android-使用环信SDK开发即时通信功能及源码下载
- How to Install Linux KVM and Create Guest VM with Examples
- spring aop
- Mybatis源码分析--MapperScannerConfigurer
- ajax完美解决跨域问题(jsonp、nginx反向代理)
- 全面解析单例模式
- Redis3.0 Cluster集群安装
- Swift 算法实战之路:二叉树
- UIMenuController 实现过程,以及不为人知的一些坑
- SSH-KeyGen 的用法
- 如何在Android Studio中搜索并添加jar包
- 实现图片居中的js。
- XMPP之创建群组
- [selenium] selenium+java+testNG 显示等待
- xmpp即时通信
- java中ajax使用--传回一个对象