私は時間のロジックはあまり得意ではありませんが、ユーザーが整数 (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);
}
読んでくれてありがとう。コメントもありがとう。