1. 程式人生 > >秒殺活動倒計時 iOS程式碼實現

秒殺活動倒計時 iOS程式碼實現

IOS關於大型網站搶購、距活動結束,剩餘時間倒計時的實現程式碼,程式碼比較簡單,大家根據需求適當的新增修改刪除程式碼
這裡寫圖片描述

1.定義4個 Label 來接收倒計時:

@property (weak, nonatomic) IBOutlet UILabel *dayLabel;
@property (weak, nonatomic) IBOutlet UILabel *hourLabel;
@property (weak, nonatomic) IBOutlet UILabel *minuteLabel;
@property (weak, nonatomic) IBOutlet UILabel
*secondLabel;

2.在實現檔案中實現方法:

//時間戳轉換為日期格式(毫秒的時間戳)
- (NSString *)timeWithTimeIntervalString:(NSString *)timeString
{
    // 格式化時間
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"
]; // 毫秒值轉化為秒 NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/ 1000.0]; NSString* dateString = [formatter stringFromDate:date]; NSLog(@"時間 === %@",dateString); return dateString; } -(void)downSecondHandle:(NSString *)aTimeString{ NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"
]; NSDate *endDate = [dateFormatter dateFromString:[self timeWithTimeIntervalString:aTimeString]]; //結束時間 NSDate *endDate_tomorrow = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([endDate timeIntervalSinceReferenceDate])]; NSDate *startDate = [NSDate date]; NSString* dateString = [dateFormatter stringFromDate:startDate]; NSLog(@"現在的時間 === %@",dateString); NSTimeInterval timeInterval =[endDate_tomorrow timeIntervalSinceDate:startDate]; if (_timer==nil) { __block int timeout = timeInterval; //倒計時時間 if (timeout!=0) { dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒執行 dispatch_source_set_event_handler(_timer, ^{ if(timeout<=0){ //倒計時結束,關閉 dispatch_source_cancel(_timer); _timer = nil; dispatch_async(dispatch_get_main_queue(), ^{ self.dayLabel.text = @""; self.hourLabel.text = @"00"; self.minuteLabel.text = @"00"; self.secondLabel.text = @"00"; }); }else{ int days = (int)(timeout/(3600*24)); if (days==0) { self.dayLabel.text = @""; } int hours = (int)((timeout-days*24*3600)/3600); int minute = (int)(timeout-days*24*3600-hours*3600)/60; int second = timeout-days*24*3600-hours*3600-minute*60; dispatch_async(dispatch_get_main_queue(), ^{ if (days==0) { self.dayLabel.text = @"0天"; }else{ self.dayLabel.text = [NSString stringWithFormat:@"%d天",days]; } if (hours<10) { self.hourLabel.text = [NSString stringWithFormat:@"0%d",hours]; }else{ self.hourLabel.text = [NSString stringWithFormat:@"%d",hours]; } if (minute<10) { self.minuteLabel.text = [NSString stringWithFormat:@"0%d",minute]; }else{ self.minuteLabel.text = [NSString stringWithFormat:@"%d",minute]; } if (second<10) { self.secondLabel.text = [NSString stringWithFormat:@"0%d",second]; }else{ self.secondLabel.text = [NSString stringWithFormat:@"%d",second]; } }); timeout--; } }); dispatch_resume(_timer); } } }

3.在需要出使用:

 [self downSecondHandle:@"1494622800000"];

相關推薦

活動倒計時 iOS程式碼實現

IOS關於大型網站搶購、距活動結束,剩餘時間倒計時的實現程式碼,程式碼比較簡單,大家根據需求適當的新增修改刪除程式碼 1.定義4個 Label 來接收倒計時: @property (weak, nonatomic) IBOutlet UILabel *d

工作小記——小活動

累加 不用 都去 發送請求 col log 腳本 指定 動靜 公司緊急要求搞一個促銷活動: 活動到時放出banner,點進去未登錄的需先登錄,已領取過直接顯示已領取。未領取過的話,點“送祝福”,隨機彈出一條祝福語,再點“領紅包”,則發一個紅包。總共1900個,領完彈框“已領

【公告】關於“天天活動時間調整

閱讀 href 掃描 .html 重點 關註 mage roc 得到 自2017年1月中旬上線以來,天天秒殺活動得到了廣大新老學員的熱烈支持,在此感謝大家對51CTO學院的包容與厚愛! 下載“51CTO學院”APP,隨時隨地秒課>>> 這一年中,我們也在持

雙十一電商Java開發聊聊限流的多種實現

前言 俗話說的好,冰凍三尺非一日之寒,滴水穿石非一日之功,羅馬也不是一天就建成的。兩週前秒殺案例初步成型,分享到了中國最大的同性交友網站-碼雲。同時也收到了不少小夥伴的建議和投訴。我從不認為分散式、叢集、秒殺這些就應該是大廠的專利,在網際網路的今天無論什麼時候都要時刻武裝自己,只有這樣,也許你的春天就在明天

使用Redis類庫處理一般的搶購()活動示例

1、建立搶購活動Redis類庫檔案 <?php /** * Created by PhpStorm. */ namespace app\base\service; use mikkle\tp_redis\RedisHashInfoBase; use think\Exception;

php商城活動

今天在網上看到一篇思路+程式碼的商城秒殺例項,我覺得非常不錯,借鑑一下分享給大家: 一、前言   雙十一剛過不久,大家都知道在天貓、京東、蘇寧等等電商網站上有很多秒殺活動,例如在某一個時刻搶購一個原價1999現在秒殺價只要999的手機時,會迎來一個使用者請求的高峰期,可能會有幾十萬幾百萬的併發量,來搶這個

劉海屏,有望實現手機|平板|電腦三合一,可摺疊螢幕究竟是何方神聖?

改變世界的不應該是全面屏,而是可摺疊螢幕 坐二望一的華為再出大招。華為公司輪值主席胡厚崑表示,其首款支援5G的Android智慧手機將配備可摺疊顯示屏,該機將於2019年中期推出。 相關媒體報道稱,華為野心勃勃,即使還處於實驗室階段,依然願意不惜一切

系統設計架構與實現

https://blog.csdn.net/qq_27631217/article/details/80657271 最近做了一個點餐的平臺,其中涉及到一個很重要的問題,活動期間的秒殺系統的實現。搶購/秒殺是如今很常見的一個應用場景,是高併發程式設計的一個挑戰,在網上也找了一

Java高併發API之service層實現(二)

二 service層實現 1.內容 站在使用者的角度設計介面 三個方向 :方法粒度,引數,返回型別 2.程式碼 SeckillService package org.seckill.service; import java.util.L

電商網站活動

秒殺活動通常是這樣定義:活動方在有限的時間段內(通常是M分鐘到H小時不等的時間)給出指定數量O個P商品的大減價搶購名額。 這類秒殺活動一般都會出現如下情況↓↓ 第一、在某一時間內QPS超過系統負載;

Java系統(十)實現功能-商品列表頁

商品表 CREATE TABLE `goods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品ID', `goods_name` varchar(16) CHARACTER SET utf8mb4 DEFA

JAVA系統(五)實現登入功能--明文密碼兩次MD5處理

1.資料庫設計2.明文密碼兩次MD5處理3.JSR303引數檢驗+全域性異常處理4.分散式Session1.新建查詢2.兩次MD5:防止資料洩露       1.使用者端:pass = MD5(明文+固

電商活動的技術分析

秒殺活動是絕大部分電商選擇的低價促銷、推廣品牌的方式。不僅可以給平臺帶來使用者量,還可以提高平臺知名度。一個好的秒殺系統,可以提高平臺系統的穩定性和公平性,獲得更好的使用者體驗,提升平臺的口碑,從而提升秒殺活動的最大價值。 這裡使用redis來處理秒殺活動。 秒殺的特徵:

NTP協議網路時間同步 ios中應用 實現倒計時

專案中需要實現秒殺倒計時功能,手機客戶端本地系統時間有被修改的可能,因此無法獲取本地時間來做,下面看實現程式碼吧 -(void)startTimerShow { self.ysmagTimer = [NSTimerscheduledTimerWithTimeInterv

iOS活動倒計時的兩種實現方式

ofo orm ren 年-月 ats omd string 分享 截圖 代碼地址如下:<br>http://www.demodashi.com/demo/11076.html 在做些活動界面或者限時驗證碼時, 經常會使用一些倒計時突出展現. 現提供兩種方

微信小程序----團購或的批量倒計時實現

建立 int box height 操作 思路 ret 效果 .get 效果圖 實現思路微信小程序實現倒計時,可以將倒計時的時間進行每一秒的計算和渲染! JS模擬商品列表數據 goodsList;在 onLoad 周期函數中對活動結束時間進行提取;建立時間格式化函數 tim

redis的活動倒計時問題

版權宣告:本文為博主原創文章,轉載需標明出處哦 ^-^。 https://blog.csdn.net/qq_33101675/article/details/83118461 我們知道電商裡有很多場景,就是活動倒計時的秒殺問題,比如:明天10點開始搶購,倒計時2分鐘等,那麼這個到底有多精確呢?是

活動倒計時問題

我們知道電商裡有很多場景,就是活動倒計時的秒殺問題,比如:明天10點開始搶購,倒計時2分鐘等,那麼這個到底有多精確呢?是不是2分鐘時間剛剛到活動就準時開始呢?我們今天先來說下倒計時,改天說秒殺問題。 我說一下做法,這裡有三種方案,是我思考出來的,可能不對,也可能有更好的方案,僅供參考吧。

android -- 商城倒計時實現

我們經常會看到一些商城類App裡面總會有秒殺倒計時,下面就來說一下。 //相差多少時間 - ms private long dt = 0; private Handler handler = new Handler(){ @