0

私は時間のロジックはあまり得意ではありませんが、ユーザーが整数 (INT) とブール (DN) を使用して特定のタスクを 2 分間隔で実行したかどうかを確認したいと考えています。

擬似コードはこれ

控除関数 1

INT <= 2 分間で 4 の場合 -0.5 それ以外の場合 INT > 4 で 2 分間の場合 -1.0

加算機能 2

if INT < 3 && DN >= 2 in 2 min then +0.5 それ以外の場合 INT < 4 && DN >= 3 in 2 min then +0.25

現在、私は間隔を見つけるためにこれを行っただけです

//time check if more then 2 minutes
#define TIME_INTERVAL   -120

-(void)shouldCheckForTime
{
    NSString *updateUTCPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"UTCDate"];
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:updateUTCPath];

    if (!fileExists)
    {
        NSDate *currentDate = [NSDate date];
        NSArray *array = [NSArray arrayWithObject:currentDate];
        [array writeToFile:updateUTCPath atomically:YES];

        NSTimeInterval currentUTCTimeStamp = [[NSDate date] timeIntervalSince1970];
        NSLog(@"currentUTCTimeStamp %.0f",currentUTCTimeStamp);
    }

    NSMutableArray *rawArray = [NSMutableArray arrayWithContentsOfFile:updateUTCPath];
    if (rawArray == nil)
    {
        //return NO;
    }

    //get date from file UTCDate
    NSDate *lastUTCDate = [rawArray objectAtIndex:0];
    //NSLog(@"CDTS timeIntervalSince1970 %.0f",[lastUTCDate timeIntervalSince1970]);
   // NSLog(@"CDTS timeIntervalSinceNow %.0f",[lastUTCDate timeIntervalSinceNow]);

    if ([lastUTCDate timeIntervalSinceNow] < TIME_INTERVAL)
    {
         //NSLog(@"more then 2 mins");
    }
    else
    {
         //NSLog(@"less then 2 mins");
    }

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
    [dateFormatter setDateFormat:@"mm:ss:SS"];

    NSDate* firstDate = [dateFormatter dateFromString:@"01:00:00"];
    NSDate* secondDate = [dateFormatter dateFromString:@"01:02:00"];

    NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate];

    //NSLog(@"time diff %f",timeDifference);
}

読んでくれてありがとう。コメントもありがとう。

4

1 に答える 1

1

リクエストに応じて、必要なものの例を次に示します。この特定の例は、ユーザーがオブジェクトを作成してからの経過時間を判断するために使用されます。次に、分単位にする必要があるか、時間単位にする必要があるかを判断します。

NSTimeInterval timeDifference = [[NSDate date] timeIntervalSinceDate:dateToCompare;
NSTimeInterval finalTime = timeDifference / 60;

NSString *timePostedString = nil;
if (finalTime < 1) {
    timePostedString = [NSString stringWithFormat:@"1m"];
} else if (finalTime >= 60) {
    timePostedString = [NSString stringWithFormat:@"%.0fh", finalTime / 60];
} else if (finalTime >= 1440) {
    timePostedString = [NSString stringWithFormat:@"%.1fd", finalTime / 1440];
}
于 2013-01-26T09:50:44.247 に答える