我有兩個時間..一個直接取得字符串(@「21:00」)和其他是當前時間。我想顯示一個倒計時計時器,顯示從現在開始到21:00的剩餘時間。iPhone中的倒數計時器
例如:如果當前時間爲17:30,則我使用的標籤應顯示「您有3小時30分鐘..」。 謝謝..
我有兩個時間..一個直接取得字符串(@「21:00」)和其他是當前時間。我想顯示一個倒計時計時器,顯示從現在開始到21:00的剩餘時間。iPhone中的倒數計時器
例如:如果當前時間爲17:30,則我使用的標籤應顯示「您有3小時30分鐘..」。 謝謝..
確定已完全修改我的答案,並創建了一個完整的解決方案,在github上提供完整測試示例代碼。
享受:)
好吧,看看我的最新樣本代碼 –
我想這次比較當前時間,並顯示在一個標籤作爲定時器跑回病房。 –
我會seee一分鐘tghanks –
您創建的NSTimer將觸發每一秒:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(tickClock) userInfo:nil repeats:YES];
火災時,你輸入一個方法:
- (void)tickClock;
在那裏
,您比較日期你已經對現在的日期[NSData currentDate]
;
喜歡其中distanceBetweenDates以秒爲單位指定
NSTimeInterval distanceBetweenDates = [currentDate timeIntervalSinceDate:yourDate];
。
若要從您的字符串的日期創建的NSDate相應
NSInteger year = 2011;
NSInteger month = 8;
NSInteger day = 26;
NSInteger hour = 21;
NSInteger minute = 0;
NSInteger second = 0;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
[components setHour:hour];
[components setMinute:minute];
[components setSecond:second];
NSDate *date = [calendar dateFromComponents:components];
[components release];
我沒有約會!我只有一串我說21:00。我會做什麼呢? –
看我更新的帖子 –
像這樣的東西應該這樣做。這會在幾秒鐘內給你剩餘的時間。然後你只需要標準的定時器的東西,如其他答案中所示。
//assumption: targetTime is after now
NSString *targetTime = @"21:00";
//split our time into components
NSArray *timeSplit = [targetTime componentsSeparatedByString:@":"];
NSUInteger hours = [[timeSplit objectAtIndex:0] intValue];
NSUInteger minutes = [[timeSplit objectAtIndex:1] intValue];
NSDate *now = [NSDate date];
//split now into year month day components
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [currentCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:now];
//set our time components from above
[dateComponents setHour:hours];
[dateComponents setMinute:minutes];
NSDate *targetDate = [currentCalendar dateFromComponents:dateComponents];
//ensure target is after now
if ([targetDate timeIntervalSinceDate:now] < 0)
{
NSDateComponents *day = [[NSDateComponents alloc] init];
[day setDay:1];
targetDate = [currentCalendar dateByAddingComponents:day toDate:targetDate options:0];
}
NSTimeInterval timeRemaining = [targetDate timeIntervalSinceDate:now];
見我的回答,我已經提供了完整的工作示例代碼,做什麼你問究竟 –
亞歷thankyoy採取這樣的interesrt在此。現在我已經完成了我完全需要的東西。謝謝.. –