iOS 时间前后计算

/**
* 时间前后计算
*
* @param date 传入要开始计算的时间
* @param Flag 正数为向前计算 负数向后计算 (天)
*
* @return 计算后的时间
*/
- (NSString *)getPriousorBeforeOrLaterDateFromDate:(NSDate *)date withFlag:(int)Flag
{
// 校验时间 差八小时
double interval = 0;
NSTimeZone *zone = [NSTimeZone systemTimeZone];
interval = [zone secondsFromGMTForDate:date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];

// 计算时间
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:Flag];
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *mDate = [calender dateByAddingComponents:comps toDate:localeDate options:0];
NSString * dateStr = [self checkNowTimeStr:@"yyyy-MM-dd" nsdate:mDate];
return dateStr;
}

- (NSString *)checkNowTimeStr:(NSString *)str

                       nsdate:(NSDate *)dates

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

    [formatter setDateFormat:str];

    NSString *NowTime = [formatter stringFromDate:dates];

    return NowTime;

}



// 修改[comps setDay:Flag];  改变计算单位

@property NSInteger era;

@property NSInteger year;

@property NSInteger month;

@property NSInteger day;

@property NSInteger hour;

@property NSInteger minute;

@property NSInteger second;

@property NSInteger nanosecond NS_AVAILABLE(10_7, 5_0);

@property NSInteger weekday;

@property NSInteger weekdayOrdinal;

@property NSInteger quarter NS_AVAILABLE(10_6, 4_0);

@property NSInteger weekOfMonth NS_AVAILABLE(10_7, 5_0);

@property NSInteger weekOfYear NS_AVAILABLE(10_7, 5_0);

@property NSInteger yearForWeekOfYear NS_AVAILABLE(10_7, 5_0);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值