今天在CocoaChina上面看到有人在問倒計時怎么做,記得以前在看Iphone31天的時候做過一個,今天翻出來運行不了了,原因是我的IphoneSDK升級到3.1了,以前使用的是2.2.1,在2.2.1里面是可以使用NSCalendarDate的,但是在3.1里面不能夠使用,怎么辦,只好用NSTimer了,最后還是給實現了。代碼也比較簡單,開始運行viewDidLoad的時候加載[NSTimerscheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(timerFireMethod:) userInfo:nilrepeats:YES];//使用timer定時,每秒觸發一次
,然后就是寫selector了。
-(void)timerFireMethod:(NSTimer*)theTimer
{
//NSDateFormatter *dateformatter =[[[NSDateFormatter alloc]init]autorelease];//定義NSDateFormatter用來顯示格式
//[dateformatter setDateFormat:@"yyyy MM dd hh mmss"];//設定格式
NSCalendar *cal = [NSCalendarcurrentCalendar];//定義一個NSCalendar對象
NSDateComponents *shibo = [[NSDateComponentsalloc] init];//初始化目標時間(好像是世博會的日期)
[shibo setYear:2010];
[shibo setMonth:5];
[shibo setDay:1];
[shibo setHour:8];
[shibo setMinute:0];
[shibo setSecond:0];
NSDate *todate = [caldateFromComponents:shibo];//把目標時間裝載入date
[shibo release];
//NSString *ssss = [dateformatterstringFromDate:dd];
//NSLog([NSString stringWithFormat:@"shiboshi:%@",ssss]);
NSDate *today = [NSDate date];//得到當前時間
//NSString *sss = [dateformatterstringFromDate:today];
//NSLog([NSString stringWithFormat:@"xianzaishi:%@",sss]);
//用來得到具體的時差
unsigned int unitFlags = NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d = [cal components:unitFlagsfromDate:today toDate:todate options:0];
lab.text = [NSStringstringWithFormat:@"%d年%d月%d日%d時%d分%d秒",[d year],[d month], [d day],[d hour], [d minute], [d second]];
}
這樣就實現了倒計時的功能。
,然后就是寫selector了。
-(void)timerFireMethod:(NSTimer*)theTimer
{
//NSDateFormatter *dateformatter =[[[NSDateFormatter alloc]init]autorelease];//定義NSDateFormatter用來顯示格式
//[dateformatter setDateFormat:@"yyyy MM dd hh mmss"];//設定格式
NSCalendar *cal = [NSCalendarcurrentCalendar];//定義一個NSCalendar對象
NSDateComponents *shibo = [[NSDateComponentsalloc] init];//初始化目標時間(好像是世博會的日期)
[shibo setYear:2010];
[shibo setMonth:5];
[shibo setDay:1];
[shibo setHour:8];
[shibo setMinute:0];
[shibo setSecond:0];
NSDate *todate = [caldateFromComponents:shibo];//把目標時間裝載入date
[shibo release];
//NSString *ssss = [dateformatterstringFromDate:dd];
//NSLog([NSString stringWithFormat:@"shiboshi:%@",ssss]);
NSDate *today = [NSDate date];//得到當前時間
//NSString *sss = [dateformatterstringFromDate:today];
//NSLog([NSString stringWithFormat:@"xianzaishi:%@",sss]);
//用來得到具體的時差
unsigned int unitFlags = NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d = [cal components:unitFlagsfromDate:today toDate:todate options:0];
lab.text = [NSStringstringWithFormat:@"%d年%d月%d日%d時%d分%d秒",[d year],[d month], [d day],[d hour], [d minute], [d second]];
}
這樣就實現了倒計時的功能。

更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
