本文目录
- ios nstimeinterval 是以秒为单位吗
- objective-c中怎么样把时间差转换成时间段
- NSTimeINterval返回值是什么类型
- ios怎么设置当前时间到某个时间断之间的时间差
- 如何将 NSTimeInterval 转换为 int
ios nstimeinterval 是以秒为单位吗
想在程序开始或者进入某个界面 ,到结束程序或退出某个界面,获取到这个持续时间. 获取到这个时间还需要转化一个取得时分秒.
-(NSString *)getCurrentTime
{
NSDateFormatter *formatter = ;
;
NSString *dateTime = ;
self.startTime = dateTime;
return startTime;
}
date1代表开始时间,在开始计时的地方调用 ; 在结束时的方法里写如下代码:
NSDateFormatter *formatter = ;
;
NSDate *date1 = ;
NSDate *date2 = ;
NSTimeInterval aTimer = ;
int hour = (int)(aTimer/3600);
int minute = (int)(aTimer - hour*3600)/60;
int second = aTimer - hour*3600 - minute*60;
NSString *dural = ;
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
objective-c中怎么样把时间差转换成时间段
用于初始化NSDate实例的实例方法有
- (id)init; 初始化为当前时间。类似date方法 初始化为以2001/01/01 GMT为基准,然后过了secs秒的时间。类似dateWithTimeIntervalSinceReferenceDate:方法
- (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate; 初始化为以refDate为基准,然后过了secs秒的时间
- (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs; 初始化为以当前时间为基准,然后过了secs秒的时间
2. 日期之间比较可用以下方法
- (BOOL)isEqualToDate:(NSDate *)otherDate; 与otherDate比较,相同返回YES
- (NSDate *)earlierDate:(NSDate *)anotherDate; 与anotherDate比较,返回较早的那个日期
- (NSDate *)laterDate:(NSDate *)anotherDate; 与anotherDate比较,返回较晚的那个日期
- (NSComparisonResult)compare:(NSDate *)other;
该方法用于排序时调用: . 当实例保存的日期值与anotherDate相同时返回NSOrderedSame . 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending . 当实例保存的日期值早于anotherDate时返回NSOrderedAscending
NSTimeINterval返回值是什么类型
解决方法 直接赋值:NSTimeInterval interval = 1002343.5432542;NSInteger time = interval;//time is now equal to 1002343NSTimeInterval 是双重的所以如果你将它分配直接给 NSInteger (或 int,如果你愿意的话) 它会工作。这将切断时间精确到秒。如果你想要舍入到最接近的秒 (而不能切断) 你可以使用圆才使分配:NSTimeInterval interval = 1002343.5432542;NSInteger time = round(interval);//time is now equal to 1002344
ios怎么设置当前时间到某个时间断之间的时间差
- (int)intervalSinceNow: (NSString *) theDate { NSDateFormatter *date=; ; NSDate *d=; NSTimeInterval late=*1; NSDate* dat = ; NSTimeInterval now=*1; NSString *timeString=@""; NSTimeInterval cha=now-late; if (cha/86400》1) { timeString = ; timeString = ; return ; } return -1; } 上面的例子只是计算相差了几天 当然可以计算其他数值 cha/3600《1 分钟 if (cha/3600》1&&cha/86400《1) 小时 01 // 获取当前日期 02 NSDate *date = ; 03 04 // 打印结果: 当前时间 date = 2013-08-16 09:00:04 +0000 05 NSLog(@"当前时间 date = %@",date); 06 07 // 获取从某个日期开始往前或者往后多久的日期,此处60代表60秒,如果需要获取之前的,将60改为-60即可 08 date = ; 09 10 //打印结果:当前时间 往后60s的时间date = 2013-08-16 09:01:04 +0000 11 NSLog(@"当前时间 往后60s的时间date = %@",date); PS:测试时时间是下午5点,但是得到的当前时间却是上午9点,相差了8小时,是时区的问题 解决办法: 1 NSTimeZone *zone = ; 2 3 NSInteger interval = ; 4 5 NSDate *localDate = ; 6 7 // 打印结果 正确当前时间 localDate = 2013-08-16 17:01:04 +0000 8 NSLog(@"正确当前时间 localDate = %@",localDate);
如何将 NSTimeInterval 转换为 int
解决方法 直接赋值: NSTimeInterval interval = 1002343.5432542; NSInteger time = interval; //time is now equal to 1002343 NSTimeInterval 是双重的所以如果你将它分配直接给 NSInteger (或 int,如果你愿意的话) 它会工作。这将切断时间精确到秒。 如果你想要舍入到最接近的秒 (而不能切断) 你可以使用圆才使分配: NSTimeInterval interval = 1002343.5432542; NSInteger time = round(interval); //time is now equal to 1002344