`

[iPhone][cocoa] 如何计算两个日期之间的天数

阅读更多
问题:  如何计算两个日期之间的天数


使用到的类: NSDate   NSDateComponents  NSCalendar

1: NSDate objects

represent a single point in time.

2: NSDateComponents
NSDateComponents encapsulates the components of a date in an extendable, object-oriented manner.

3: NSCalendar
Calendars encapsulate information about systems of reckoning time in which the beginning, length, and divisions of a year are defined. They provide information about the calendar and support for calendrical computations such as determining the range of a given calendrical unit and adding units to a given absolute time.

In a calendar, day, week, weekday, month, and year numbers are generally 1-based, but there may be calendar-specific exceptions.

To do calendar arithmetic, you use NSDate objects in conjunction with a calendar. For example, to convert between a decomposed date in one calendar and another calendar, you must first convert the decomposed elements into a date using the first calendar, then decompose it using the second. NSDate provides the absolute scale and epoch (reference point) for dates and times, which can then be rendered into a particular calendar, for calendrical computations or user display.

转换方法:

NSCalendar 类的
- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options:(NSUInteger)opts

获取startDate与endDate 之间相隔几天

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *startDate = ...;
NSDate *endDate = ...;
unsigned int unitFlags = NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate  toDate:endDate  options:0];
int days = [comps day];


其他使用实例

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:5];
[comps setYear:2004];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
[comps release];
NSDateComponents *weekdayComponents =
[gregorian components:NSWeekdayCalendarUnit fromDate:date];
int weekday = [weekdayComponents weekday];



提示:
1: NSDate
To parse strings containing dates and to generate string representations of a date, you should use an instance of NSDateFormatter using the methods dateFromString: and stringFromDate: respectively—see Date Formatters for more details.

 

分享到:
评论

相关推荐

    Cocoa Touch for iPhone OS 3

    ### Cocoa Touch for iPhone OS 3 知识点详解 #### 一、概述 《Cocoa Touch for iPhone OS 3》是一本专为iOS开发者撰写的书籍,主要关注于早期版本的iPhone操作系统——iPhone OS 3(现在已演变为iOS)。本书由...

    iPhone开发基础 cocoa入门

    ### iPhone开发基础 Cocoa入门 #### 一、Cocoa与iPhone开发环境...综上所述,Cocoa不仅为iPhone开发提供了一个坚实的技术基础,还涵盖了广泛的开发领域,从基本的概念到高级的主题,都是开发者需要熟练掌握的知识点。

    iphone开发cocoa教材中文pdf

    《iPhone开发:Cocoa教程中文PDF》是一本专为初学者设计的,深入浅出的iOS应用程序开发指南。这本书的核心内容是围绕Cocoa Touch框架展开,这是Apple为iOS设备(包括iPhone、iPad等)开发应用的主要工具。Cocoa ...

    Cocoa Touch for iPhone OS 3 (pdf 书及源代码)

    Cocoa Touch for iPhone OS 3 (pdf 书及源代码) Join the gold rush to developing cool iPhone apps with this complete iPhone OS 3 developer’s guide. Professional developer Jiva DeVoe speaks your ...

    Cocoa 是什么?

    Cocoa 主要由两大部分组成:一部分是在运行时(runtime)中展现出来的用户界面和与系统交互的能力;另一部分则是开发者在构建应用时所使用的面向对象的类库和其他工具。 1. **运行时外观**:在运行时外观方面,...

    Cocoa基础指南介绍

    Cocoa采用了多种设计模式,其中最为人所知的是MVC模式,它将应用程序分为模型、视图和控制器三个部分。除此之外,还有代理模式(delegation)、通知(notifications)和绑定(bindings)等,这些设计模式提高了代码...

    知易Cocoa -iPhone开发教程

    知易Cocoa是针对iOS平台应用开发的一种框架,它基于Objective-C编程语言,是Apple为开发者提供的强大工具,用于构建高质量、高性能的iPhone和iPad应用程序。Cocoa Touch是Cocoa的一部分,专门针对移动设备,提供了...

    Cocoa基本原理指南

    Cocoa框架的组件可以分为运行环境和开发环境两个方面。运行环境方面,Cocoa应用程序通过Aqua用户界面与操作系统集成,用户几乎感受不到Cocoa应用程序与其他操作系统组件的界限。开发环境方面,Cocoa框架提供了一整套...

    cocoa iPhone 音频流媒体 demo

    总的来说,“cocoa iPhone 音频流媒体 demo”涵盖的内容十分广泛,包括了音频处理、网络编程、多线程、内存管理等多个方面,对于想要开发音频流媒体应用的iOS开发者来说,这是一个非常有价值的参考资源。通过学习和...

    cocoa日期格式

    至于"VCExample"这个文件,它可能是Visual C++的一个示例项目,可能包含了用Objective-C编写的Cocoa代码,用于演示日期格式化的具体实现。不过,由于无法直接查看这个文件,我们只能根据通常的Cocoa开发实践来推测其...

    Cocoa基本原理指南(Cocoa Fundamentals Guide)

    8. **Key-Value Coding (KVC) 和 Key-Value Observing (KVO)**:Cocoa中的这两个特性提供了动态访问对象属性和观察属性变化的能力,增强了代码的灵活性和可扩展性。 9. **Model-View-ViewModel (MVVM)**:虽然Cocoa...

    Cocoa框架类之间的继承关系

    这两个框架为开发者提供了构建高质量应用的基础类库和支持。 #### 二、Foundation框架 ##### 2.1 Foundation框架简介 - **定义**: Foundation框架提供了一系列用于处理基本数据类型、存储、系统信息等的基础类。 -...

    treemapkit, Cocoa Touch for ( iphone/ipod touch/ipad ).zip

    treemapkit, Cocoa Touch for ( iphone/ipod touch/ipad ) TreemapKitTreemapKit是 Cocoa Touch的treemap实现。 你可以在 iPhone,iPod touch和iPad中显示 TreeMaps 。点击这里看一下简单的演示软件。 许可证...

    [iPhone开发书籍大全].Cocoa.Touch.for.iPhone.OS.3.0.Developer.Reference(Wiley.2009).pdf

    Cocoa Touch for iPhone OS 3.0 Developer Reference,英文版本,PDF 格式,大小 18 Mb,作者 Jiva DeVoe,2009 年出版。 Join the gold rush to developing cool iPhone apps with this complete iPhone OS 3 ...

    Cocoa 基本原理指南.pdf (中文)

    - **定义与特点**:Cocoa是一个面向对象的应用程序开发环境,主要应用于Mac OS X操作系统之上。它不仅是一组面向对象的软件库集合,同时也是一个运行时环境,为开发者提供了构建高质量应用程序所需的工具与框架。 - ...

Global site tag (gtag.js) - Google Analytics