ios 日期操作封装
2014-06-30 10:35
302 查看
/**
* 获取明天日期
*
* @return NSDate类型
*/
+(NSDate *) dateTomorrow
{
return [[NSDate
date] initWithTimeIntervalSinceNow:24 *
60 *
60 ];
}
/**
* 获取昨天日期
*
* @return NSDate类型
*/
+(NSDate *) dateYesterday
{
return [[NSDate
date] initWithTimeIntervalSinceNow: -24 *
60 *
60];
}
/**
* 获取指定天数后的日期
*
* @param days
天数
*
* @return NSDate类型
*/
+(NSDate *) dateWithDaysFromNow:(NSUInteger) days
{
return [[NSDate
date] initWithTimeIntervalSinceNow:days *
24 *
60 * 60];
}
/**
* 获取指定天数前的日期
*
* @param days
天数
*
* @return NSDate类型
*/
+(NSDate *) dateWithDaysBeforeNow:(NSInteger) days
{
return [[NSDate
date] initWithTimeIntervalSinceNow:((-24) *
60 *
60 * days)];
}
/**
* 获取指定小时数后的日期
*
* @param dHours
小时数
*
* @return NSDate类型
*/
+(NSDate *) dateWithHoursFromNow:(NSUInteger) dHours
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dHours *
60 *
60];
}
/**
* 获取指定小时数前的日期
*
* @param dHours
小时数
*
* @return NSDate类型
*/
+(NSDate *) dateWithHoursBeforeNow:(NSInteger) dHours
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dHours *
60 *
60 * (-1)];
}
/**
* 获取指定分钟后的日期
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
+(NSDate *) dateWithMinutesFromNow:(NSUInteger) dMinutes
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dMinutes *
60];
}
/**
* 获取指定分钟前的日期
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
+(NSDate *) dateWithMinutesBeformNow:(NSInteger) dMinutes
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dMinutes *
60 * (-1)];
}
/**
* 当前日期与指定日期比较是否相等
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
-(BOOL) isEqualtoDatelgnoringTime:(NSDate *) aDate
{
return [[NSDate
date] isEqualToDate:aDate];
}
/**
* 是不是今天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) IsToday:(NSDate *) aDate
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInToday:aDate];
}
/**
* 是不是明天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isTomorrow:(NSDate *) aDate;
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInTomorrow:aDate];
}
/**
* 是不是昨天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isYesterday:(NSDate *) aDate
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInYesterday:aDate];
}
/**
* 是不是同一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isSameWeekAsDate:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isThisWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
//
根据参数提供的时间点,返回所在日历单位的开始时间。如果startDate和interval均可以计算,则返回YES;否则返回NO
// extends获取的是日历单位所对应的秒数
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是下一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isNextWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > (dateStartInSecs + extends) && dateInSecs < (dateStartInSecs +
2 * extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是上一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isLastWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs < dateStartInSecs && dateInSecs > (dateStartInSecs - extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isSameYearAsDate:(NSDate *) aDate andSecDate:(NSDate *) bDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *bDateStr = [ds
stringFromDate:bDate];
NSString *aDateStr = [ds
stringFromDate:aDate];
if ([aDateStr isEqual:bDateStr]) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isThisYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
if ([currentDateStr
isEqual:compareDateStr]) {
return true;
}else {
return
false;
}
}
/**
* 是不是下一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isNextYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
NSInteger currentDateInt = [currentDateStr
integerValue];
NSInteger compareDateInt = [compareDateStr
integerValue];
if (compareDateInt - currentDateInt ==
1) {
return true;
}else {
return
false;
}
}
/**
* 是不是上一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isLastYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
NSInteger currentDateInt = [currentDateStr
integerValue];
NSInteger compareDateInt = [compareDateStr
integerValue];
if (currentDateInt - compareDateInt ==
1) {
return true;
}else {
return
false;
}
}
/**
* 是不是比dDate早
*
* @param aDate
指定日期
*
* @return NSDate类型
*/
-(BOOL) isEarlierThanDate:(NSDate *) aDate
{
NSDate *date = [[NSDate
alloc] init];
if ([[date laterDate:aDate]
isEqualToDate:aDate]) {
return true;
}else {
return
false;
}
}
/**
* 是不是比aData晚
*
* @param aDate
指定日期
*
* @return NSDate类型
*/
-(BOOL) isLaterThanDate:(NSDate *) aDate
{
NSDate *date = [[NSDate
alloc] init];
if ([[date earlierDate:aDate]
isEqualToDate:aDate]) {
return
false;
}else {
return true;
}
}
* 获取明天日期
*
* @return NSDate类型
*/
+(NSDate *) dateTomorrow
{
return [[NSDate
date] initWithTimeIntervalSinceNow:24 *
60 *
60 ];
}
/**
* 获取昨天日期
*
* @return NSDate类型
*/
+(NSDate *) dateYesterday
{
return [[NSDate
date] initWithTimeIntervalSinceNow: -24 *
60 *
60];
}
/**
* 获取指定天数后的日期
*
* @param days
天数
*
* @return NSDate类型
*/
+(NSDate *) dateWithDaysFromNow:(NSUInteger) days
{
return [[NSDate
date] initWithTimeIntervalSinceNow:days *
24 *
60 * 60];
}
/**
* 获取指定天数前的日期
*
* @param days
天数
*
* @return NSDate类型
*/
+(NSDate *) dateWithDaysBeforeNow:(NSInteger) days
{
return [[NSDate
date] initWithTimeIntervalSinceNow:((-24) *
60 *
60 * days)];
}
/**
* 获取指定小时数后的日期
*
* @param dHours
小时数
*
* @return NSDate类型
*/
+(NSDate *) dateWithHoursFromNow:(NSUInteger) dHours
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dHours *
60 *
60];
}
/**
* 获取指定小时数前的日期
*
* @param dHours
小时数
*
* @return NSDate类型
*/
+(NSDate *) dateWithHoursBeforeNow:(NSInteger) dHours
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dHours *
60 *
60 * (-1)];
}
/**
* 获取指定分钟后的日期
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
+(NSDate *) dateWithMinutesFromNow:(NSUInteger) dMinutes
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dMinutes *
60];
}
/**
* 获取指定分钟前的日期
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
+(NSDate *) dateWithMinutesBeformNow:(NSInteger) dMinutes
{
return [[NSDate
date] initWithTimeIntervalSinceNow:dMinutes *
60 * (-1)];
}
/**
* 当前日期与指定日期比较是否相等
*
* @param dMinutes
分钟
*
* @return NSDate类型
*/
-(BOOL) isEqualtoDatelgnoringTime:(NSDate *) aDate
{
return [[NSDate
date] isEqualToDate:aDate];
}
/**
* 是不是今天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) IsToday:(NSDate *) aDate
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInToday:aDate];
}
/**
* 是不是明天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isTomorrow:(NSDate *) aDate;
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInTomorrow:aDate];
}
/**
* 是不是昨天
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isYesterday:(NSDate *) aDate
{
NSCalendar *cld = [[NSCalendar
alloc]
init];
return [cld isDateInYesterday:aDate];
}
/**
* 是不是同一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isSameWeekAsDate:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isThisWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
//
根据参数提供的时间点,返回所在日历单位的开始时间。如果startDate和interval均可以计算,则返回YES;否则返回NO
// extends获取的是日历单位所对应的秒数
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是下一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isNextWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs > (dateStartInSecs + extends) && dateInSecs < (dateStartInSecs +
2 * extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是上一周
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isLastWeek:(NSDate *) aDate
{
NSDate *start;
NSTimeInterval extends;
NSCalendar *cal = [NSCalendar
autoupdatingCurrentCalendar];
NSDate *today = [NSDate
date];
BOOL success = [cal
rangeOfUnit:NSWeekdayCalendarUnit
startDate:&start interval:&extends
forDate:today];
if (!success) {
return
false;
}
NSTimeInterval dateInSecs = [aDate
timeIntervalSinceReferenceDate];
NSTimeInterval dateStartInSecs = [start
timeIntervalSinceReferenceDate];
if (dateInSecs < dateStartInSecs && dateInSecs > (dateStartInSecs - extends)) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isSameYearAsDate:(NSDate *) aDate andSecDate:(NSDate *) bDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *bDateStr = [ds
stringFromDate:bDate];
NSString *aDateStr = [ds
stringFromDate:aDate];
if ([aDateStr isEqual:bDateStr]) {
return true;
}else {
return
false;
}
}
/**
* 是不是同一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isThisYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
if ([currentDateStr
isEqual:compareDateStr]) {
return true;
}else {
return
false;
}
}
/**
* 是不是下一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isNextYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
NSInteger currentDateInt = [currentDateStr
integerValue];
NSInteger compareDateInt = [compareDateStr
integerValue];
if (compareDateInt - currentDateInt ==
1) {
return true;
}else {
return
false;
}
}
/**
* 是不是上一年
*
* @param aDate
日期
*
* @return NSDate类型
*/
-(BOOL) isLastYear:(NSDate *) aDate
{
NSDateFormatter *ds = [[NSDateFormatter
alloc]
init];
[ds setDateFormat:@"yyyy"];
NSString *currentDateStr = [ds
stringFromDate:[NSDate
date]];
NSString *compareDateStr = [ds
stringFromDate:aDate];
NSInteger currentDateInt = [currentDateStr
integerValue];
NSInteger compareDateInt = [compareDateStr
integerValue];
if (currentDateInt - compareDateInt ==
1) {
return true;
}else {
return
false;
}
}
/**
* 是不是比dDate早
*
* @param aDate
指定日期
*
* @return NSDate类型
*/
-(BOOL) isEarlierThanDate:(NSDate *) aDate
{
NSDate *date = [[NSDate
alloc] init];
if ([[date laterDate:aDate]
isEqualToDate:aDate]) {
return true;
}else {
return
false;
}
}
/**
* 是不是比aData晚
*
* @param aDate
指定日期
*
* @return NSDate类型
*/
-(BOOL) isLaterThanDate:(NSDate *) aDate
{
NSDate *date = [[NSDate
alloc] init];
if ([[date earlierDate:aDate]
isEqualToDate:aDate]) {
return
false;
}else {
return true;
}
}
相关文章推荐
- 简单的iOS通讯录操作封装(添加联系人、检查号码是否存在)
- iOS 有关日期操作
- IOS Object-c NSDate总结日期操作
- 【IOS学习笔记】Swift iOS 日期操作:NSDate、NSDateFormatter(转载)
- iOS 日期操作
- IOS NSDate日期操作总结
- iOS经典讲解之利用单例类封装对SQLite数据库增、删、查、改的操作
- ios开发——详解sqlite数据库,封装数据库操作
- 【IOS类扩展之日期操作】NSDate+Helpers
- 【IOS类扩展之日期操作】NSDate+Helpers
- ios 操作日期NSDate
- 【ios】使用Block对POST异步操作的简单封装
- iOS中时间/日期处理NSDate的常用接口操作
- IOS Object-c NSDate总结日期操作
- iOS与日期相关的操作
- 日期操作工具类之 Calendar的常用方法封装
- 一个自己封装的日期时间操作的用户对象
- iOS:日期 时间类操作 NSDate、calendar、formatter、components、locale、timeZone
- 【精】iOS 日期操作总结:NSDate、NSDateFormatter
- IOS学的容易---数据库详细的操作(继承与单例类封装一,二)