有关日期的一些判断,逻辑
来源:互联网 发布:php常用的谷歌插件 编辑:程序博客网 时间:2024/06/08 18:11
1.获取现在的日期
NSDate *nowDate = [NSDate date]; NSDateFormatter *format = [[NSDateFormatter alloc] init]; format.dateFormat = @"YYYY年MM月dd日 HH:mm:ss"; NSString *timeStr = [format stringFromDate:nowDate];
2.计算两个日期之间相差几天
eg:inDate=2015-10-01 outDate=2015-10-10 day=9;
NSString *days = [self getDaysStar:inDate andEnd:outDate];
方法
- (NSString *)getDaysStar:(NSString *)starDay andEnd:(NSString *)endDay{ NSString *days; int checkInYear = [[starDay substringToIndex:4] intValue]; int checkInM = [[starDay substringWithRange:NSMakeRange(5, 2)] intValue]; int checkInD = [[starDay substringWithRange:NSMakeRange(8, 2)] intValue]; int checkOutYear = [[endDay substringToIndex:4] intValue]; int checkOutM = [[endDay substringWithRange:NSMakeRange(5, 2)] intValue]; int checkOutD = [[endDay substringWithRange:NSMakeRange(8, 2)] intValue]; int checkInDays; int checkOutDays; if (checkInYear == checkOutYear) { if (checkInYear%4==0 && checkInYear %100!=0) { if (checkInM == 1) { checkInDays = checkInD; }else if (checkInM == 2) { checkInDays = checkInD + 31; }else if (checkInM == 3) { checkInDays = checkInD + 60; }else if (checkInM == 4) { checkInDays = checkInD + 91; }else if (checkInM == 5) { checkInDays = checkInD + 121; }else if (checkInM == 6) { checkInDays = checkInD + 152; }else if (checkInM == 7) { checkInDays = checkInD + 182; }else if (checkInM == 8) { checkInDays = checkInD + 213; }else if (checkInM == 9) { checkInDays = checkInD + 244; }else if (checkInM == 10) { checkInDays = checkInD + 274; }else if (checkInM == 11) { checkInDays = checkInD + 305; }else if (checkInM == 12) { checkInDays = checkInD + 335; } if (checkOutM == 1) { checkOutDays = checkOutD; }else if (checkOutM == 2) { checkOutDays = checkOutD + 31; }else if (checkOutM == 3) { checkOutDays = checkOutD + 60; }else if (checkOutM == 4) { checkOutDays = checkOutD + 91; }else if (checkOutM == 5) { checkOutDays = checkOutD + 121; }else if (checkOutM == 6) { checkOutDays = checkOutD + 152; }else if (checkOutM == 7) { checkOutDays = checkOutD + 182; }else if (checkOutM == 8) { checkOutDays = checkOutD + 213; }else if (checkOutM == 9) { checkOutDays = checkOutD + 244; }else if (checkOutM == 10) { checkOutDays = checkOutD + 274; }else if (checkOutM == 11) { checkOutDays = checkOutD + 305; }else if (checkOutM == 12) { checkOutDays = checkOutD + 335; } }else { if (checkInM == 1) { checkInDays = checkInD; }else if (checkInM == 2) { checkInDays = checkInD + 31; }else if (checkInM == 3) { checkInDays = checkInD + 59; }else if (checkInM == 4) { checkInDays = checkInD + 90; }else if (checkInM == 5) { checkInDays = checkInD + 120; }else if (checkInM == 6) { checkInDays = checkInD + 151; }else if (checkInM == 7) { checkInDays = checkInD + 181; }else if (checkInM == 8) { checkInDays = checkInD + 212; }else if (checkInM == 9) { checkInDays = checkInD + 243; }else if (checkInM == 10) { checkInDays = checkInD + 273; }else if (checkInM == 11) { checkInDays = checkInD + 304; }else if (checkInM == 12) { checkInDays = checkInD + 334; } if (checkOutM == 1) { checkOutDays = checkOutD; }else if (checkOutM == 2) { checkOutDays = checkOutD + 31; }else if (checkOutM == 3) { checkOutDays = checkOutD + 59; }else if (checkOutM == 4) { checkOutDays = checkOutD + 90; }else if (checkOutM == 5) { checkOutDays = checkOutD + 120; }else if (checkOutM == 6) { checkOutDays = checkOutD + 151; }else if (checkOutM == 7) { checkOutDays = checkOutD + 181; }else if (checkOutM == 8) { checkOutDays = checkOutD + 212; }else if (checkOutM == 9) { checkOutDays = checkOutD + 243; }else if (checkOutM == 10) { checkOutDays = checkOutD + 273; }else if (checkOutM == 11) { checkOutDays = checkOutD + 304; }else if (checkOutM == 12) { checkOutDays = checkOutD + 334; } } days = [NSString stringWithFormat:@"%d",checkOutDays - checkInDays]; } if (checkInYear != checkOutYear) { if (checkInYear%4==0 && checkInYear %100!=0) { if (checkInM == 1) { checkInDays = checkInD; }else if (checkInM == 2) { checkInDays = checkInD + 31; }else if (checkInM == 3) { checkInDays = checkInD + 60; }else if (checkInM == 4) { checkInDays = checkInD + 91; }else if (checkInM == 5) { checkInDays = checkInD + 121; }else if (checkInM == 6) { checkInDays = checkInD + 152; }else if (checkInM == 7) { checkInDays = checkInD + 182; }else if (checkInM == 8) { checkInDays = checkInD + 213; }else if (checkInM == 9) { checkInDays = checkInD + 244; }else if (checkInM == 10) { checkInDays = checkInD + 274; }else if (checkInM == 11) { checkInDays = checkInD + 305; }else if (checkInM == 12) { checkInDays = checkInD + 335; } checkInDays = 366 - checkInDays; }else { if (checkInM == 1) { checkInDays = checkInD; }else if (checkInM == 2) { checkInDays = checkInD + 31; }else if (checkInM == 3) { checkInDays = checkInD + 59; }else if (checkInM == 4) { checkInDays = checkInD + 90; }else if (checkInM == 5) { checkInDays = checkInD + 120; }else if (checkInM == 6) { checkInDays = checkInD + 151; }else if (checkInM == 7) { checkInDays = checkInD + 181; }else if (checkInM == 8) { checkInDays = checkInD + 212; }else if (checkInM == 9) { checkInDays = checkInD + 243; }else if (checkInM == 10) { checkInDays = checkInD + 273; }else if (checkInM == 11) { checkInDays = checkInD + 304; }else if (checkInM == 12) { checkInDays = checkInD + 334; } checkInDays = 365 - checkInDays; } if (checkOutYear%4==0 && checkOutYear%100!=0) { if (checkOutM == 1) { checkOutDays = checkOutD; }else if (checkOutM == 2) { checkOutDays = checkOutD + 31; }else if (checkOutM == 3) { checkOutDays = checkOutD + 60; }else if (checkOutM == 4) { checkOutDays = checkOutD + 91; }else if (checkOutM == 5) { checkOutDays = checkOutD + 121; }else if (checkOutM == 6) { checkOutDays = checkOutD + 152; }else if (checkOutM == 7) { checkOutDays = checkOutD + 182; }else if (checkOutM == 8) { checkOutDays = checkOutD + 213; }else if (checkOutM == 9) { checkOutDays = checkOutD + 244; }else if (checkOutM == 10) { checkOutDays = checkOutD + 274; }else if (checkOutM == 11) { checkOutDays = checkOutD + 305; }else if (checkOutM == 12) { checkOutDays = checkOutD + 335; } // checkOutDays = 366 - checkOutDays; }else { if (checkOutM == 1) { checkOutDays = checkOutD; }else if (checkOutM == 2) { checkOutDays = checkOutD + 31; }else if (checkOutM == 3) { checkOutDays = checkOutD + 59; }else if (checkOutM == 4) { checkOutDays = checkOutD + 90; }else if (checkOutM == 5) { checkOutDays = checkOutD + 120; }else if (checkOutM == 6) { checkOutDays = checkOutD + 151; }else if (checkOutM == 7) { checkOutDays = checkOutD + 181; }else if (checkOutM == 8) { checkOutDays = checkOutD + 212; }else if (checkOutM == 9) { checkOutDays = checkOutD + 243; }else if (checkOutM == 10) { checkOutDays = checkOutD + 273; }else if (checkOutM == 11) { checkOutDays = checkOutD + 304; }else if (checkOutM == 12) { checkOutDays = checkOutD + 334; } // checkOutDays = 365 - checkOutDays; } days = [NSString stringWithFormat:@"%d",checkInDays + checkOutDays]; } return days;}
传进去的string =2014-02-01
- (NSString *)weekday:(NSString *)string{ NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [formatter dateFromString:string]; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *comps = nil; NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit | NSSecondCalendarUnit; comps = [calendar components:unitFlags fromDate:date]; NSInteger week = [comps weekday]; NSString *w; if (week == 7) { w = @"星期六"; } else if (week == 1) { w = @"星期日"; } else if (week == 2) { w = @"星期一"; } else if (week == 3) { w = @"星期二"; } else if (week == 4) { w = @"星期三"; } else if (week == 5) { w = @"星期四"; } else if (week == 6) { w = @"星期五"; } return w;}
0 0
- 有关日期的一些判断,逻辑
- Oracle中有关日期的一些设置
- 一些与日历,日期有关的用法
- PB一些有关日期的实用函数
- 日期的逻辑判断(不用Date和 Calendar)
- Oracle中一些和日期有关的SQL查询
- 日期有关的查询
- 参考别人的代码整理的一些 javascript 有关日期时间的一些知识
- 逻辑判断的代码
- CheckBox的逻辑判断
- 条件判断的逻辑
- 一些逻辑的问题
- 一些简单的逻辑
- 有关逻辑判断 请问pascal一道NOIP题目
- 有关Shell的一些
- 数据库的一些有关
- sql有关日期的实现
- sql有关日期的实现
- MDCT/MDST, IMDCT与DCT-IV的关系以及快速FFT实现
- MySQL 性能比较测试:MySQL 5.6 GA -vs- MySQL 5.5
- 纯CSS定义input file样式及上传图片预览 CSS
- 小知识点(12)-常用log4j配置文件详解
- 【Linux】bridge-utils brctl 网桥配置命令
- 有关日期的一些判断,逻辑
- 取出现次数最多的K个数
- 双向链表
- layout_weight
- 我所理解的注入
- 453 小珂的烦恼【打表吧】
- Android Eclipse开发集成融云即时通信平台
- iOS_placeholder 设置
- 树状数组区间更新 hdu4031