秒殺活動倒計時 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來處理秒殺活動。 秒殺的特徵:
使用Redis中介軟體解決商品秒殺活動中出現的超賣問題(使用Java多執行緒模擬高併發環境)
開發十年,就只剩下這套架構體系了! >>>
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(){ @