iOS计算上次日期距离现在多久的代码
程序员文章站
2023-12-20 11:13:10
本文实例为大家分享了ios上次日期距离现在多久的计算代码,供大家参考,具体内容如下
/**
* 计算上次日期距离现在多久
*
* @param las...
本文实例为大家分享了ios上次日期距离现在多久的计算代码,供大家参考,具体内容如下
/** * 计算上次日期距离现在多久 * * @param lasttime 上次日期(需要和格式对应) * @param format1 上次日期格式 * @param currenttime 最近日期(需要和格式对应) * @param format2 最近日期格式 * * @return xx分钟前、xx小时前、xx天前 */ + (nsstring *)timeintervalfromlasttime:(nsstring *)lasttime lasttimeformat:(nsstring *)format1 tocurrenttime:(nsstring *)currenttime currenttimeformat:(nsstring *)format2{ //上次时间 nsdateformatter *dateformatter1 = [[nsdateformatter alloc]init]; dateformatter1.dateformat = format1; nsdate *lastdate = [dateformatter1 datefromstring:lasttime]; //当前时间 nsdateformatter *dateformatter2 = [[nsdateformatter alloc]init]; dateformatter2.dateformat = format2; nsdate *currentdate = [dateformatter2 datefromstring:currenttime]; return [utilities timeintervalfromlasttime:lastdate tocurrenttime:currentdate]; } + (nsstring *)timeintervalfromlasttime:(nsdate *)lasttime tocurrenttime:(nsdate *)currenttime{ nstimezone *timezone = [nstimezone systemtimezone]; //上次时间 nsdate *lastdate = [lasttime datebyaddingtimeinterval:[timezone secondsfromgmtfordate:lasttime]]; //当前时间 nsdate *currentdate = [currenttime datebyaddingtimeinterval:[timezone secondsfromgmtfordate:currenttime]]; //时间间隔 nsinteger intevaltime = [currentdate timeintervalsincereferencedate] - [lastdate timeintervalsincereferencedate]; //秒、分、小时、天、月、年 nsinteger minutes = intevaltime / 60; nsinteger hours = intevaltime / 60 / 60; nsinteger day = intevaltime / 60 / 60 / 24; nsinteger month = intevaltime / 60 / 60 / 24 / 30; nsinteger yers = intevaltime / 60 / 60 / 24 / 365; if (minutes <= 10) { return @"刚刚"; }else if (minutes < 60){ return [nsstring stringwithformat: @"%ld分钟前",(long)minutes]; }else if (hours < 24){ return [nsstring stringwithformat: @"%ld小时前",(long)hours]; }else if (day < 30){ return [nsstring stringwithformat: @"%ld天前",(long)day]; }else if (month < 12){ nsdateformatter * df =[[nsdateformatter alloc]init]; df.dateformat = @"m月d日"; nsstring * time = [df stringfromdate:lastdate]; return time; }else if (yers >= 1){ nsdateformatter * df =[[nsdateformatter alloc]init]; df.dateformat = @"yyyy年m月d日"; nsstring * time = [df stringfromdate:lastdate]; return time; } return @""; }
使用如下:
nslog(@"\n\nresult: %@", [utilities timeintervalfromlasttime:@"2015年12月8日 15:50" lasttimeformat:@"yyyy年mm月dd日 hh:mm" tocurrenttime:@"2015/12/08 16:12" currenttimeformat:@"yyyy/mm/dd hh:mm"]);
输出结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。