2012-03-21 8 views
0

私はUIDatePicker(MM-dd形式)から日付を取得し、それが他の2つの日付の範囲内にあるかどうかを確認しようとしています。日付(日付ピッカーから)が他の2つの日付の間にあるかどうかをチェックする方法は? objective-c

私はこれをさまざまな方法で試してみましたが、私の心は遠くに行ってしまったと思います。 誰かが私にそれをすべきであると簡単に手伝うことができますか?

これが私の最後のtryコードです:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM-dd"]; 
NSString *theDate = [dateFormat stringFromDate:birthdateSelector.date]; 
NSDate *birthdate = [dateFormat dateFromString:theDate]; 

NSString *Capricorn_Start = @"12-22" ; 
NSString *Capricorn_End = @"01-19" ; 

if ([birthdate laterDate:[dateFormat dateFromString:Capricorn_End]] && [birthdate earlierDate:[dateFormat dateFromString:Capricorn_Start]]){ 

    NSLog(@"im capricorn"); 
} 

おかげで、 アミール。

+0

[NSDateが他の2つのNSDateの間に存在するかどうかをチェックする方法](http://stackoverflow.com/questions/1072848/how-to-check-if-an-nsdate-occurs-between-two- other-nsdates) –

答えて

1

あなたはdateAdateBdateCを持っている、とあなたは < dateCは、あなたがdateA-dateB間の違いを取得することができますdateB dateA < かどうかを確認したい場合dateB-dateCこれはdiffXdiffYとなります。 diffX符号がdiffY記号より等しい場合、それはdateBとの間にCであることを意味します。

あるいは、言い換えれば、あなたのコードは次のようになります。

NSTimeInterval diffX = [dateB timeIntervalSinceDate:dateA]; 
NSTimeInterval diffY = [dateC timeIntervalSinceDate:dateB]; 

if (signbit(diffX) == signbit(diffY)) 
{ 
    // dateB is in-between dateA and dateC 
} 
+1

ありがとう、もう一度ありがとう!ありがとうございました ! –

2

方法laterDateearlierDateNSDateを返します。

代わりにcompare:を使用し、戻り値を確認する必要があります。

0

年(両方に同じもの)を追加して、たとえば1970年から時間を取得して比較することができます。

関連する問題