#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong,nonatomic) UILabel *titleLable;

@property (strong,nonatomic) UILabel *showTimeLable;

@property (strong,nonatomic) UIView *bottomView;

@property (strong,nonatomic) NSString *setTime;

@property (strong,nonatomic) NSArray *timeArr;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.titleLable = [[UILabel alloc] initWithFrame:CGRectMake(88, 40, 200, 140)];

self.titleLable.backgroundColor = [UIColor clearColor];

self.titleLable.numberOfLines = 0;

self.titleLable.textColor = [UIColor purpleColor];

self.titleLable.textAlignment = NSTextAlignmentCenter;

self.titleLable.font = [UIFont systemFontOfSize:30];

[self.view addSubview:self.titleLable];

self.showTimeLable = [[UILabel alloc] initWithFrame:CGRectMake(88, 190, 200, 200)];

self.showTimeLable.backgroundColor = [UIColor grayColor];

self.showTimeLable.textAlignment = NSTextAlignmentCenter;

self.showTimeLable.font = [UIFont systemFontOfSize:30];

self.showTimeLable.numberOfLines = 0;

self.showTimeLable.textColor = [UIColor yellowColor];

self.showTimeLable.layer.cornerRadius = self.showTimeLable.frame.size.width / 2;

self.showTimeLable.clipsToBounds = YES;

[self.view addSubview:self.showTimeLable];

self.setTime = @"2016-6-1";

self.timeArr = [self.setTime componentsSeparatedByString:@"-"];

[self refreshTime];

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(refreshTime) userInfo:nil repeats:YES];

}

-(void)refreshTime

{

NSCalendar *laterCalender = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

NSDateComponents *latercomponents = [[NSDateComponents alloc] init];

latercomponents.year = [self.timeArr[0] integerValue];

latercomponents.month = [self.timeArr[1] integerValue];

latercomponents.day = [self.timeArr [2] integerValue];

NSDate *laterDate = [laterCalender dateFromComponents:latercomponents];

NSDateComponents *betweenDate = [laterCalender components:NSCalendarUnitSecond fromDate:[NSDate date] toDate:laterDate options:0];

if (betweenDate.second < 0) {

self.showTimeLable.text = [self DayHourMunintSecond:-betweenDate.second];

self.titleLable.text = [NSString stringWithFormat:@"距离\n%@\n已经过时",self.setTime];

}

else{

self.showTimeLable.text = [self DayHourMunintSecond:betweenDate.second];

self.titleLable.text = [NSString stringWithFormat:@"距离\n%@\n结课还有",self.setTime];

}

}

-(NSString *)DayHourMunintSecond:(NSInteger)time

{

NSString *timeString;

timeString = [NSString stringWithFormat:@"%ld秒",time % 60];

time /= 60;

if (time > 0) {

timeString = [NSString stringWithFormat:@"%ld分\n%@",time % 60,timeString];

}

time /= 60;

if (time > 0) {

timeString = [NSString stringWithFormat:@"%ld时\n%@",time % 24,timeString];

}

time /= 24;

if (time > 0) {

timeString = [NSString  stringWithFormat:@"%ld天\n%@",time,timeString];

}

return timeString;

}

倒计时demo的更多相关文章

  1. unity3d之简单的时钟倒计时demo

    输入结束时间,开始倒计时,时间差不超过一天,附上代码:(关于个位数显示,加个判断如果小于10 显示的字符串加上0) using System.Collections; using System.Col ...

  2. js倒计时demo 天/时/分/秒

    <html><head> <meta charset="UTF-8"> <title>js简单时分秒倒计时</title> ...

  3. html—倒计时demo

    <!doctype html> <html> <head> <meta charset="utf-8"> </head> ...

  4. 倒计时的js实现 倒计时 js Jquery

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=987 一.如火如荼的团 ...

  5. 倒计时(jQuery)

    倒计时,在网页制作中会经常用到,特别是一些节日活动页面运用更是广泛.今天就和大家分享一下jQuery如何实现倒计时.话不多说,言归正传,倒计时开始: 首先,既然是用jQuery实现,那么前提就是要先引 ...

  6. js实现倒计时 类似团购网站

    一.demo与效果展示 为节约时间,我就直接套用了企鹅团的界面作为demo的背景.因为是倒计时,所以需要一个固定的时间,为了n年后,某位仁兄打开demo页面依然在倒计时,所以我把倒计时时间设成了205 ...

  7. js 发送短信倒计时、秒杀倒计时实现代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. Android倒计时功能的实现

    Android中的倒计时的功能(也能够直接使用CountDownTimer这个类直接实现,相关此Demo可查看我的博客).參考了网上写的非常好的一个倒计时Demo: watermark/2/text/ ...

  9. vue 倒计时返回首页

    1. vue页面15分钟无操作时返回首页 2. 基于vue的倒计时demo 3. 在vue2.0项目中一个简单的倒计时功能 4. vue重新发送验证码 5. 表格<td>里面文字垂直显示

随机推荐

  1. mysqldump 数据库备份命令及脚本

    mysql -uroot -phowhy@123 -e 'show databases;' | grep -ivE 'waring|database|mysql'|sed -r "s#^(. ...

  2. express学习点滴- 永远不要忘记异步

    直接上两段代码,因为nodejs基于异步和事件回调的解决方式,涉及到异步的时候,问题往往藏得很深,以下这个简单的问题困扰了很久.之前怀疑是各种问题,到处改.直到最后一步一步跟代码,跟操作数据库部分豁然 ...

  3. 弹性布局EM的计算方法

    文章来源: http://www.w3cplus.com/css/px-to-em 总结: 1.浏览器默认的字体大小为16PX,即1em 2.EM可以指定小数点的后三位 3.元素自身没有设置字体大小, ...

  4. PAT 团体程序设计天梯赛-练习集 L1-008. 求整数段和

    给定两个整数A和B,输出从A到B的所有整数以及这些数的和. 输入格式: 输入在一行中给出2个整数A和B,其中-100<=A<=B<=100,其间以空格分隔. 输出格式: 首先顺序输出 ...

  5. 读书笔记之ado.net entity framework

    提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...

  6. hdu_5790_Prefix(trie+主席树)

    题目链接:hdu_5790_Prefix 题意: 给你n个字符串,字符串总长度不超过10W,然后给你一个区间,问你这个区间的字符串不相同的前缀有多少个. 题解: 由于z与上一个答案有关,所以强制在线, ...

  7. hdu_4283_You Are the One(区间DP)

    题目链接:hdu_4283_You Are the One 题意: 有n个人,每个人有个屌丝值,如果果他是第K个上场,不开心指数就为(K-1)*D,然后有个小黑屋,可以调整他们的出场顺序,现在让你调整 ...

  8. Traffic Ccontrol(流量控制)

    linux有一个成熟的带宽供给系统,称为Traffic Control(流量控制).这个系统支持各种方式进行分类.排序.共享和限制出入流量. 一.基础知识 让ip显示我们的链路 ip link  li ...

  9. js 获取页面可视区域宽高

    获取浏览器窗口的可视区域高度和宽度,滚动条高度有需要的朋友可参考一下. 1.IE中,浏览器显示窗口大小只能以下获取: 代码如下复制代码 代码如下 document.body.offsetWidth d ...

  10. Android应用测试性能的工具Emmagee,导出文件格式问题分析

    原文引用自:http://www.open-open.com/lib/view/open1367026451078.html Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资 ...