1

重複の可能性:
ObjectiveCで2つのNSDateオブジェクトを比較する方法

1 --->私はObjective-Cを初めて使用し、ある時点で立ち往生しています。コンセプトはタイプ予約スロット/予約です。つまり、前の時間と前の日付でスロットを予約することはできません。今日の日付を特定の日付と比較する必要があります。今日の日付よりも小さいか、今日の日付よりも大きい場合があります。

現在の日付を取得するために私はこれを行いました:

NSDate *date = [NSDate date];
 NSDateFormatter *formatter = nil;
 formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];

UItextFieldに今日の日付と比較する日付があります。これもyyyy-MM-dd形式です。

今日の日付をtextFieldの日付と比較する必要がありますが、取得できません。

if(textfielddate<currentdate)
{
   NSLog(@"You cannot book a slot at past date);
}

しかし、ここでは比較されていません。

2--->24時間形式の時刻と同じく24時間形式の現在時刻を比較する必要があります。

文字列変数12:00、11:00、15:00などに特定の時刻があります。次に、これを24時間形式の現在の時刻と比較する必要があります。

if([time <= currenttime] && [textFielddate==currentdate])
{
    NSLog(@"You cannot book a slot at past time ");
}

どうすればいいですか?

4

2 に答える 2

1

最善の方法は、NSCompariosnResultを使用することです

[date1 compare:date2];

次に、昇順か降順か等しいかどうかを確認します。

よろしくディーパック

于 2012-11-06T05:18:04.760 に答える
1

UITextFieldに入力された日付が前かどうかを確認します。テキストフィールドに入力された値を使用して、新しい日付を作成できます。入力した値が2012年11月6日であるとすると、そのテキストフィールドから、プログラムで日、月、年のコンポーネントを整数で取得する必要があります。前回かどうかを確認する必要がある時間の時間、分、秒も整数で取得します。以下を使用して、希望する時刻の日付を作成します。

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:iDay];
    [comps setMonth:iMonth];
    [comps setYear:iYear];
    [comps setHour:iHour];
    [comps setMinute:iMinutes];
    [comps setSecond:iSeconds];

    NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
    NSDate *dateToCheck = [gregorian dateFromComponents:comps];
    [comps release];

日付が作成されると、次を使用して日付が前の日付であるかどうかを確認できます。

    double timestamp = [dateToCheck timeIntervalSinceDate:[NSDate date]];
    if(timestamp < 0)
    {
        // The date is previous one
    }
于 2012-11-06T06:18:49.620 に答える