广告
返回顶部
首页 > 资讯 > 移动开发 >IOS NSTimeInterval使用案例详解
  • 304
分享到

IOS NSTimeInterval使用案例详解

IOSNSTimeInterval 2022-06-01 14:06:43 304人浏览 八月长安
摘要

一 iOS 获取时间间隔 想在程序开始或者进入某个界面 ,到结束程序或退出某个界面,获取到这个持续时间. 获取到这个时间还需要转化一个取得时分秒. -(NSString *)ge

iOS 获取时间间隔

想在程序开始或者进入某个界面 ,到结束程序或退出某个界面,获取到这个持续时间. 获取到这个时间还需要转化一个取得时分秒.

-(NSString *)getCurrentTime

{

    NSDateFORMatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSString *dateTime = [formatter stringFromDate:[NSDate date]];

    self.startTime = dateTime;

    return startTime;

}

date1代表开始时间,在开始计时的地方调用 [self getCurrentTime]; 在结束时的方法里写如下代码:


NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *date1 = [formatter dateFromString:startTime];

NSDate *date2 = [NSDate date];

NSTimeInterval aTimer = [date2 timeIntervalSinceDate:date1];

 

int hour = (int)(aTimer/3600);

int minute = (int)(aTimer - hour*3600)/60;

int second = aTimer - hour*3600 - minute*60;

NSString *dural = [NSString stringWithFormat:@"%d时%d分%d秒", hour, minute,second];

二 我想把它转换成分钟和秒。

比如我有:“326.4”秒,我想把它转换成下面的字符串: “5:26”。 什么是实现这一目标的最佳方法是什么?

1. 伪代码:


minutes = floor(326.4/60)
seconds = round(326.4 - minutes * 60)

2. 简述 从布赖恩・拉姆齐答案是更方便的,如果你只是想转换为分钟。 如果你想Cocoa API的为你做它和转换您不仅分钟,但也给天,月,星期等,...我认为这是一个更通用的方法 使用

(NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options:(NSUInteger)opts“返回,作为NSDateComponents两者之间的差异提供的日期”。从api 创建2 NSDate的 CodeGo.net,其区别是你要转换。 (如果你的2 NSDate的你不需要做这一步,你甚至不需要的 让你的quotes从NSDateComponents 示例代码


// The time interval 
NSTimeInterval theTimeInterval = 326.4;
// Get the system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];
// Create the NSDates
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1]; 
// Get conversion to months, days, hours, minutes
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;
NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:date1 toDate:date2 options:0];
NSLog(@"Conversion: %dmin %dhours %ddays %dmoths",[conversionInfo minute], [conversionInfo hour], [conversionInfo day], [conversionInfo month]);
[date1 release];
[date2 release];

已知问题 太多的只是一个转换,你是对的,但是这是API如何工作的。 我的建议:如果你要管理你的NSDate和NSCalendar,该API将做艰苦的工作适合你。 

3. ,作为一个堆栈处女...我不知道如何回答布赖恩・拉姆齐的回答... 使用圆不会为59.5和59.99999之间第二值工作。第二个值将是60在此期间。使用TRUNC而不是...


double progress;
int minutes = floor(progress/60);
int seconds = trunc(progress - minutes * 60);

4. 布赖恩・拉姆齐的代码,去pseudofied:


- (NSString*)formattedStringForDuration:(NSTimeInterval)duration
{
 NSInteger minutes = floor(duration/60);
 NSInteger seconds = round(duration - minutes * 60);
 return [NSString stringWithFormat:@"%d:%02d", minutes, seconds];
}

5. 所有这些看起来比他们需要!这里有一个简短而亲切的方式来转换的时间间隔为小时,分钟和秒:


NSTimeInterval timeInterval = 326.4;
long seconds = lroundf(timeInterval); // Modulo (%) operator below needs int or long
int hour = seconds / 3600
int mins = (seconds % 3600) / 60;
int secs = seconds % 60;

请注意,当你把一个浮点数转换为整数,你得到楼()自动完成,但你可以,如果要是让你感觉更好:-)它添加到的前两个 

6. 因为它本质上是一个双... 60.0划分和提取的组成部分和小数部分。 的组成部分,将是分钟的整数。 再乘以小数部分按60.0。 其结果将是剩下秒。

到此这篇关于IOS NSTimeInterval使用案例详解的文章就介绍到这了,更多相关IOS NSTimeInterval使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: IOS NSTimeInterval使用案例详解

本文链接: https://www.lsjlt.com/news/30520.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • IOS NSTimeInterval使用案例详解
    一 ios 获取时间间隔 想在程序开始或者进入某个界面 ,到结束程序或退出某个界面,获取到这个持续时间. 获取到这个时间还需要转化一个取得时分秒. -(NSString *)ge...
    99+
    2022-06-01
    IOS NSTimeInterval
  • iOS开发中nstimeinterval怎么使用
    NSTimeInterval是一个双精度浮点型的时间间隔,它表示自2001年1月1日午夜(GMT)以来的秒数。在iOS开发中,我们可...
    99+
    2023-08-24
    nstimeinterval
  • IOS之WebSocket框架Starscream案例详解
    传统的网络技术 (也就是 Berkeley sockets) 被认为是可靠和稳定的。但是 Berkeley socket 在某些 web 技术,比如代理和防火墙下不太好使。WebSo...
    99+
    2022-05-20
    IOS websocket
  • iOS中NSThread使用示例详解
    目录正文创建和启动线程线程的状态线程安全原子和非原子属性@synchronized线程间通信正文 NSThread的对象就代表一条线程,轻量级的线程操作,生命周期需要程序员控制,当任...
    99+
    2022-11-13
    iOS NSThread 使用 iOS NSThread
  • CrashRpt使用案例详解
    CrashRpt介绍及简单应用 1、简介 CrashRpt是一个开源的第三方包,在程序出现未处理异常时,能够收集错误信息,并生成程序错误报告。CrashRpt可以将报告按照指定的方式...
    99+
    2022-11-12
  • iOS开发之UIMenuController使用示例详解
    目录简介接口介绍使用探索如何创建并显示 UIMenuController实现 Item 点击事件菜单 Item 太多???UIResponderStandardEditActions...
    99+
    2022-11-13
  • Android ActivityManager使用案例详解
    前言 Activity可以获取运行中的应用信息,可以获取到servcie,process,app,memory,Task信息等。 获取信息 ActivityManager....
    99+
    2022-11-12
  • Android Handler使用案例详解
    什么是Handler? Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联。每个Handler的实例都关联了一个线程和线程...
    99+
    2022-11-12
  • C# PropertyGrid使用案例详解
    1. 只有public的property能显示出来,可以通过BrowsableAttribute来控制是否显示,通过CategoryAttribute设置分类,通过Descripti...
    99+
    2022-11-12
  • C# AttributeUsage使用案例详解
    C# AttributeUsage的使用是如何的呢?首先让我们来了解一下什么是AttributeUsage类它是另外一个预定义特性类,AttributeUsage类的作用就是帮助我们...
    99+
    2022-11-12
  • Android VelocityTracker使用案例详解
       VelocityTracker顾名思义即速度跟踪,在android中主要应用于touch even。VelocityTracker通过跟踪一连串事件实时计算...
    99+
    2022-11-12
  • SpringCloudFeign的使用案例详解
    目录Feign简介使用传参拓展配置超时、连接时间日志打印Feign简介 Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端(⽤它来发起请求,远程调⽤的),是...
    99+
    2023-02-09
    Spring Cloud Feign使用 Spring Cloud Feign
  • C# log4net使用案例详解
    这边先介绍简单的使用:在控制台输出和写入文件 首先添加log4net的nuget包 然后在app.config中添加配置项==configSections只能有一个,且是config...
    99+
    2022-11-12
  • Android GridLayout使用案例详解
    目录一、简介二、常用属性介绍三、平分问题四、小米计算器效果五、动态加载一、简介 GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套。也算是常用,但一直没...
    99+
    2022-11-12
  • Android LayoutParams使用案例详解
    LayoutParams是什么? LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义...
    99+
    2022-11-12
  • iOS开发学习ViewController使用示例详解
    目录iOS ViewControllerWhat is a View Controller如何定义ViewController.ViewController的类型生命周期回调View...
    99+
    2022-11-13
    iOS开发ViewControlle iOS ViewControlle
  • iOS开发frame和bounds使用示例详解
    目录简述frame和bounds何时使用Frame,何时使用Bounds简述 Frame: 视图的位置和大小使用是父视图的坐标系,所以将视图放置在父级中这一点就很重要。 Bounds...
    99+
    2022-11-13
  • IOS开发Objective-C Runtime使用示例详解
    目录前言一些关键字消息传递 (Messaging)KVO关联对象 (Associated Objects)AOP(Method Swizzling)其它前言 Runtime&nbs...
    99+
    2023-02-13
    Objective-C Runtime iOS开发
  • iOS TestFlight 使用详解
    TestFlight测试分为内部测试和外部测试,各有利弊  内部测试-->利:测试的App不需要提交审核,弊端:只可以通过邮件发送邀请码,而且邮箱必须是注册了App ID的邮箱 外部测试-->利:不仅可以通过邮箱,还可以通过链接,把链接发给...
    99+
    2023-09-04
    ios
  • Java之Jackson使用案例详解
    序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作