/**
* 获取明天日期
*
* @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;
}
}