iOS判斷一個日期是否為昨日、今日、今年
1、需要建立一個NSDate類的category,呼叫的時候需要傳進來一個NSDate型別的時間即可返回BOOL值來判斷改時間是不是今日等。
2、直接上乾貨
建立完分類後,在.h檔案中加入下面的程式碼:
#import <Foundation/Foundation.h>
@interface NSDate (Extension)
/**
* 是否為今天
*/
- (BOOL)isToday;
/**
* 是否為昨天
*/
- (BOOL)isYesterday;
/**
* 是否為今年
*/
- (BOOL)isThisYear;
/**
* 返回一個只有年月日的時間
*/
- (NSDate *)dateWithYMD;
/**
* 獲得與當前時間的差距
*/
- (NSDateComponents *)deltaWithNow;
@end
3、切換到.m檔案中,加入下面程式碼:
#import "NSDate+Extension.h"
@implementation NSDate (Extension)
/**
* 是否為今天
*/
- (BOOL)isToday
{
NSCalendar *calendar = [NSCalendarcurrentCalendar];
int unit = NSCalendarUnitDay | NSCalendarUnitMonth
// 1.獲得當前時間的年月日
NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDatedate]];
// 2.獲得self的年月日
NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
return
(selfCmps.year == nowCmps.year) &&
(selfCmps.month == nowCmps.month) &&
(selfCmps.day == nowCmps.day);
}
/**
* 是否為昨天
*/
- (BOOL)isYesterday
{
// 2014-05-01
NSDate *nowDate = [[NSDatedate] dateWithYMD];
// 2014-04-30
NSDate *selfDate = [selfdateWithYMD];
// 獲得nowDate和selfDate的差距
NSCalendar *calendar = [NSCalendarcurrentCalendar];
NSDateComponents *cmps = [calendar components:NSCalendarUnitDayfromDate:selfDate toDate:nowDate options:0];
return cmps.day == 1;
}
/**
* 是否為今年
*/
- (BOOL)isThisYear
{
NSCalendar *calendar = [NSCalendarcurrentCalendar];
int unit = NSCalendarUnitYear;
// 1.獲得當前時間的年月日
NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDatedate]];
// 2.獲得self的年月日
NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
return nowCmps.year == selfCmps.year;
}
/**
* 返回一個只有年月日的時間
*/
- (NSDate *)dateWithYMD
{
NSDateFormatter *fmt = [[NSDateFormatteralloc] init];
fmt.dateFormat = @"yyyy-MM-dd";
NSString *selfStr = [fmt stringFromDate:self];
return [fmt dateFromString:selfStr];
}
/**
* 獲得與當前時間的差距
*/
- (NSDateComponents *)deltaWithNow
{
NSCalendar *calendar = [NSCalendarcurrentCalendar];
int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
return [calendar components:unit fromDate:selftoDate:[NSDatedate] options:0];
}
@end
4、使用該方法:NSDateFormatter *formater = [[NSDateFormatteralloc] init];
formater.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *sendDate = [formater dateFromString:@"你想判斷的時間"];
sendDate.isToday //判斷是否為今日sendDate.isThisYear //判斷是否為昨日
sendDate.isYesterday
//判斷是否為今年
還有一個是獲取與當前時間差距的方法deltaWithNow
基本上就是這樣搞的
相關推薦
iOS判斷一個日期是否為昨日、今日、今年
1、需要建立一個NSDate類的category,呼叫的時候需要傳進來一個NSDate型別的時間即可返回BOOL值來判斷改時間是不是今日等。 2、直接上乾貨 建立完分類後,在.h檔案中加入下面的程式碼
判斷一個日期為周幾?
public static void getWeek() throws Exception{ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calend
判斷一個請求是否為Ajax請求
iteye blank href 請求 logs 分享 判斷 let https 這幾天在寫一個網站的登錄判斷攔截器,需要對請求進行攔截,在攔截器中我需要判斷HttpServletRequest是否為Ajax異步請求。我們可以通過X-Requested-With="XMLH
python判斷一個單詞是否為有效的英文單詞?——三種方法
eas www. cal ges art etc code port href For (much) more power and flexibility, use a dedicated spellchecking library like PyEnchant. Ther
從javascript判斷一個物件是否為陣列中學習js語法
1,真正的陣列的判斷方法 javascript中最簡單的宣告陣列方法為: var a = []; 判斷是否為陣列的最直接的方法為: a instanceof Array //true a .constructor == Array //true 這裡涉及到一個i
C#判斷一個string是否為數字(正則表示式)
方案一:Try...Catch(執行效率不高) private bool IsNumberic(string oText) { try &nb
用vs實現判斷一個整數是否為素數
用vs實現判斷一個整數是否為素數,如果不是輸出它的因子 我們知道在數學應用中素數佔有極為重要的作用,所以如何判斷一個數是否為素數顯得極為重要。 判斷素數方向:
如何判斷一個物件是否為jquery物件
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
編寫一個函式判斷一個整數是否為迴文數。如果一個屬從正的方向讀和從反的方向讀的結果相同,則該數就是迴文數。
bool palindrome(int b){ int k = 0; char a[1000]; do { int c; c = b % 10; char d; for (int i = 0; i <= 9; i++) { if (c == i
1.實現一個函式,可以左旋字串中的k個字元。 2.判斷一個字串是否為另外一個字串旋轉之後的字串。
1.實現一個函式,可以左旋字串中的k個字元 ABCD左旋一個字元得到BCDA ABCD左旋兩個字元得到CDAB #include<stdio.h> #include<string.h> void left_move(char*str, int
js 判斷一個物件是否為空方法總結
通常情況下,工作中寫邏輯的時候都會用到判斷一個物件是否為空的方法,巧的是今天正好有人問我這個問題,我竟然沒回答上來,很尷尬,決定研究一下總結下來,之前研究過但是久了不用就生疏了!大意啊 1.將json物件轉化為json字串,再判斷該字串是否為"{}" var data = {};
紅黑樹旋轉的通俗易懂版本以及判斷一個樹是否為紅黑樹
紅黑樹屬於二叉搜尋樹,但是每個節點增加了一個存顏色的位,它的規則是: 1.根節點為黑色。 2.不能有連續的兩個紅節點,所以如果一個節點的顏色為紅,那麼它的子節點若不為空則一定為紅。 3.每條路徑上黑節點
判斷一個字串是否為另外一個字串旋轉之後的字串
例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一個字元得到ABCDA AABCD左旋兩個字元得到BCDAA AABCD右旋一個字元得到DAABC int is_left_mov
JavaScript判斷一個物件是否為空
寫一個函式 isEmptyObject,判斷一個物件是不是空物件 function isEmptyObject(obj){ for(var item in obj){ ret
判斷一個字串是否為另外一個字串旋轉之後的字串。 例如:給定s1 =AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0.
判斷一個字串是否為另外一個字串旋轉之後的字串。 例如:給定s1 =AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0. AABCD左旋一個字元得到ABCDA AA
程式設計:判斷一個字串是否為另一個字串的子串。
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *str, *ptr; int i, len_str, len_pt
python判斷一個字串是否為另一字串的子串的幾種方法
字串型別是Python裡面最常見的型別。在處理字串的時候經常會用到string模組,string模組的方法是在Python1.6裡面新增進來的。本文中主要以string模組的方法來判斷一個字串是否為另一字串的子串。 (一)首先介紹一種最簡單的方法:成員操作 in ss=r
判斷一個字串是否為另外一個字串的子串
#include<iostream> #include<string> using namespace std; bool checkchild(string &s, string &t) { int j = 0; for (
[LeetCode] Is Subsequence 判斷一個字串是否為另一個的子序列
宣告:原題目轉載自LeetCode,解答部分為原創 Problem : Given a string s and a string t, check if s is subsequence of t. You may assume that there is on
判斷一個字串是否為另外一個字串旋轉之後的字串。 例如:給定s1 =AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0.
思路: 判斷字串是否是給定字串旋轉後的,可以用左旋或者右旋後的每次與給定字串比較,如果有相等的就可以得出判定字串是給定字串旋轉後的,字串左旋或者右旋的次數都等於字串的長度,利用字串函式strcmpk可以比較2個字串。 #define use _CRT_SECUR