iOS 獲取N天前或N天后日期中的坑

最常見(jiàn)獲取N天前后的日期的方法是:

//獲取N天后日期+ (NSDate *)getDate:(NSDate *)currentDate day:(NSInteger)day { NSInteger days = day; // n天后的天數(shù) days = (days == 0 ? 2.f : days);//未指定天數(shù)則默認(rèn)為兩天 NSDate *appointDate; // 指定日期聲明 NSTimeInterval oneDay = 24 * 60 * 60; // 一天一共有多少秒 appointDate = [currentDate initWithTimeIntervalSinceNow: +(oneDay * days)]; return appointDate;}

而獲取N天前的日期

/改為負(fù)的天數(shù)即可 appointDate = [currentDate initWithTimeIntervalSinceNow:

大都是這樣的方法,該方法也確實(shí)能計(jì)算出距離《當(dāng)前》時(shí)間的N天前或N天后的時(shí)間;但是在最近使用時(shí),發(fā)現(xiàn)這樣計(jì)算卻無(wú)法算出《指定日期》的N天前/后時(shí)間,為此還試了很多次,卻都沒(méi)有計(jì)算出…

感覺(jué) initWithTimeIntervalSinceNow 方法始終是用《當(dāng)前》時(shí)間來(lái)計(jì)算N天前/后的時(shí)間;即使傳入一個(gè)《指定時(shí)間》也不會(huì)根據(jù)《指定時(shí)間》來(lái)計(jì)算;后來(lái)?yè)Q了一個(gè)方法才解決 (或許也不是不可能計(jì)算,也可能是因?yàn)閭魅肴掌诘臅r(shí)間格式有誤,而導(dǎo)致計(jì)算失敗) 因?yàn)榈R了不少時(shí)間,后面換了方法才解決,方法如下:

如果想獲取 指定日期的N天前或者N天后,可以使用下面方法:

+ (NSDate *)getDate:(NSDate *)currentDate day:(NSInteger)day { NSTimeInterval days = 24 * 60 * 60 * day; // 一天一共有多少秒 NSDate *appointDate = [currentDate dateByAddingTimeInterval:days]; return appointDate;}

上面是獲取 N 天的日期,要想獲取 N 天前將 days 前加負(fù)號(hào)即可

NSDate *appointDate = [currentDate dateByAddingTimeInterval: - days];

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容