`
auauau
  • 浏览: 172046 次
社区版块
存档分类
最新评论

[转]使用 NSDate,NSCalendar, NSDateComponents 获得时间之差总结

    博客分类:
  • iOS
阅读更多
原文: http://blog.csdn.net/JHorn/archive/2009/09/27/4602491.aspx
方法一

NSDate* toDate1 = [ [ NSDate alloc] initWithString:@"2520-9-26 17:10:00 +0600" ];

NSTimeInterval distance = [ toDate1 timeIntervalSinceNow  ];

NSTimeInterval iDat = distance / ( 86400 ) ;

NSLog( @" From now to %@ diff: %f ", [toDate1 description ], iDat  );

[ toDate1 release ];

方法二
NSDate* toDate	 = [ [ NSDate alloc] initWithString:@"2009-9-29 0:0:00 +0600" ];

NSDate*  startDate	= [ [ NSDate alloc] init ];

NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ];

NSUInteger unitFlags =	NSHourCalendarUnit | NSMinuteCalendarUnit | 

NSSecondCalendarUnit | NSDayCalendarUnit

| NSMonthCalendarUnit | NSYearCalendarUnit;

NSDateComponents *cps = [ chineseClendar components:unitFlags fromDate:startDate  toDate:toDate  options:0];

NSInteger diffHour = [ cps hour ];

NSInteger diffMin    = [ cps minute ];

NSInteger diffSec   = [ cps second ];

NSInteger diffDay   = [ cps day ];

NSInteger diffMon  = [ cps month ];

NSInteger diffYear = [ cps year ];

NSLog(  @" From Now to %@, diff: Years: %d  Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d", 

[toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec );

[ toDate release ];

[ startDate release ];

[ chineseClendar release ];

分享到:
评论

相关推荐

    nsdate

    总结起来,`NSDate`是iOS和macOS开发中处理日期和时间的核心类,提供了丰富的API用于创建、比较、格式化日期以及获取时间组件。结合`NSDateFormatter`和`NSCalendar`,开发者可以方便地进行日期的转换和计算,满足...

    iOS 计算两个时间的间隔,某个时间距离现在的天数

    总结起来,iOS开发中处理时间间隔和计算距离当前的天数主要依赖于NSDate、NSCalendar和NSDateComponents。通过这些工具,开发者可以轻松地进行日期和时间的比较、转换和计算,从而满足各种应用程序的需求。无论是在...

    NSCalendar日历操作

    开发者可以使用`NSCalendar`将`NSDate`分解成`NSDateComponents`,或者反之,从`NSDateComponents`构建一个新的`NSDate`。 在标签中提到的“日历”是`NSCalendar`的主要功能,它支持多种日历系统,如公历(格里高利...

    NSDate分类,获得对应中国农历

    首先,我们需要了解iOS中处理日期的基本类——NSDate、NSCalendar、NSDateComponents等。NSDate是苹果提供的一个抽象类,代表了绝对时间,而NSCalendar则用于处理日历相关的计算,如日期的加减、比较等。...

    swift-NSDate总结NSDateFormatter总结

    你可以通过`NSCalendar`和`NSDateComponents`来获取或设置具体的日期和时间元素。 `NSDateFormatter`是用于格式化和解析日期的重要工具。它可以设置日期和时间的显示样式,如“yyyy-MM-dd HH:mm:ss”或者“MM/dd/...

    ios-NSCalendar日历功能,万年历.zip

    `NSCalendar`可以将`NSDate`对象分解成`NSDateComponents`,或者根据`NSDateComponents`创建新的`NSDate`。 4. **日期转换**:`NSCalendar`提供了`dateFromComponents:`方法,用于将`NSDateComponents`转换为`...

    iOS时间戳字符串NSDate转化demo.zip

    同时,如果你需要处理的时间戳包含毫秒信息,那么可以使用`NSCalendar`和`NSDateComponents`来精确转换。 总的来说,"iOS时间戳字符串NSDate转化demo"这个项目涵盖了iOS开发中日期处理的基础,通过学习和实践,...

    ios-简单的封装自带时间、日期选择器.zip

    4. 可能涉及到日期和时间的处理,如NSCalendar、NSDate、NSDateComponents和NSDateFormatter的使用。 对于初学者来说,这是一个很好的学习资源,可以帮助理解如何使用和封装系统组件,同时提升代码的可维护性和复用...

    突破ObjectiveC开发速学手册之时间日期处理PPT学习教案.pptx

    - 创建 `NSDateComponents` 对象,设置日、月、年等属性,然后使用 `NSCalendar` 创建对应的 `NSDate` 对象。 - `[NSCalendar currentCalendar]`:获取当前系统的日历实例。 8. **创建指定日期的 `NSDate`** ...

    判断当前时间是否在设定好的时间范围内

    这涉及到对日期和时间对象的处理,通常我们会使用Objective-C中的`NSDate`类及其相关的方法。在这个场景下,`NSDate`可以帮助我们获取当前时间,而通过设置时间范围,我们可以比较并判断当前时间是否位于该范围内。 ...

    IOS 自定义时间选择器,循环显示月日

    苹果的Foundation框架提供了NSDate、NSCalendar和NSDateComponents等类来处理日期和时间。在创建自定义时间选择器时,我们将用到这些类来存储和处理用户的选取。 1. **创建UI界面**:在Xcode中,我们通常使用...

    ios-时间格式化.zip

    在iOS中,我们主要使用Foundation框架中的`NSDate`、`NSCalendar`、`NSDateComponents`和`NSDateFormatter`类来处理日期和时间。`NSDate`是表示绝对时间的类,它代表的是自纪元以来的秒数。而`NSCalendar`用于定义...

    iphone 日期类

    在iOS开发中,苹果提供了强大的Foundation框架,其中包含了许多用于处理日期和时间的类,如NSDate、NSCalendar、NSDateComponents等。"iPhone 日期类"主要指的就是这些类及其相关功能,它们允许开发者轻松地获取、...

    ios-时分秒倒计时.zip

    可以使用`NSCalendar`和`NSDateComponents`来分解时间差。 3. **定时器(Timer)的使用** - **NSTimer**: iOS中,可以使用`NSTimer`创建一个周期性的任务,每隔一定时间就执行一次更新倒计时的函数。记得在不再...

    ios-日历,选择日期,计算2个日期之前的天数.zip

    1. **日历框架(NSCalendar)**:在iOS中,我们通常使用`NSCalendar`类来处理与日期和时间相关的任务。`NSCalendar`遵循了`NSCopying`和`NSMutableCopying`协议,可以创建并定制特定的日历系统,如公历、伊斯兰历等...

    ios应用源码之弹出日期选择器 2018127

    首先,我们要了解在iOS中处理日期和时间的基本类:NSDate、NSCalendar、NSDateComponents和NSDateFormatter。NSDate对象代表一个特定的日期和时间,而NSCalendar用于处理日历相关的计算,如日期间隔、比较和转换。...

    ios-DatePicker时间选择及生日倒计时的实现.zip

    在iOS中,我们可以使用Foundation框架中的NSCalendar、NSDateComponents和NSDate类来实现这一功能。首先,我们需要将用户选择的生日日期和当前日期都转换成NSDate对象,然后通过NSCalendar进行比较,提取出两个日期...

    iOS日期格式化类(刚刚、一分钟前、昨天、周几)

    在这个过程中,我们可能还需要使用到`NSCalendar`、`NSDateComponents`以及`NSComparisonResult`来比较日期,判断时间间隔,获取星期等信息。`NSCalendar`可以用来执行日历计算,`NSDateComponents`用于提取日期的...

    OC Extension Time(时间).zip

    9. **日期组件**:获取日期中的年、月、日、小时、分钟等部分,例如`- (NSDateComponents *)componentsWithCalendar:(NSCalendar *)calendar`。 10. **时间间隔格式化**:将时间间隔转换成易读的格式,如“2分钟前...

    ios-日历选择日期.zip

    首先,我们要了解iOS中处理日期和时间的核心组件:`NSCalendar`, `NSDate`, `NSDateComponents` 和 `UIDatePicker`。`NSCalendar` 是一个抽象的日历模型,它定义了日期和时间的计算规则。`NSDate` 表示一个时间点,`...

Global site tag (gtag.js) - Google Analytics