前一段时间感觉苹果的时间类很乱,但是经过仔细琢磨,感觉苹果对时间类的架构还是非常好的,下面是我读苹果官方文档,并总结下来的代码,如果有什么错的地方还请指出。
.h
//
// DateHelper.m
// TestDate
//代码原始地址:http://blog.csdn.net/diyagoanyhacker
// Created by 禚来强 email:[email protected] QQ:1287976580
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface DateHelper : NSObject
/************************************************
*获取日期(date_)对用的元素
*/
+ (int)second:(NSDate *)date_;
+ (int)minute:(NSDate *)date_;
+ (int)hour:(NSDate *)date_;
+ (int)day:(NSDate *)date_;
+ (int)month:(NSDate *)date_;
+ (int)year:(NSDate *)date_;
/************************************************/
/************************************************
*判断date_是否和当前日期在指定的范围之内
*/
+ (BOOL)isDateThisWeek:(NSDate *)date_;
+ (BOOL)isDateThisMonth:(NSDate *)date_;
+ (BOOL)isDateThisYear:(NSDate *)date_;
/************************************************/
/************************************************
*判断两个时间是否在指定的范围之内
*/
+ (BOOL)twoDateIsSameYear:(NSDate *)fistDate_
second:(NSDate *)secondDate_;
+ (BOOL)twoDateIsSameMonth:(NSDate *)fistDate_
second:(NSDate *)secondDate_;
+ (BOOL)twoDateIsSameDay:(NSDate *)fistDate_
second:(NSDate *)secondDate_;
/************************************************/
/* 获取指定日期所在月的天数 */
+ (int)numberDaysInMonthOfDate:(NSDate *)date_;
+ (NSDate *)dateByAddingComponents:(NSDate *)date_
offsetComponents:(NSDateComponents *)offsetComponents_;
/************************************************
*获取指定日期所在的月对应的月开始时间和月结束时间
*/
+ (NSDate *)startDateInMonthOfDate:(NSDate *)date_;
+ (NSDate *)endDateInMonthOfDate:(NSDate *)date_;
/************************************************/
- (BOOL)isDateThisWeek:(NSDate *)date;
@end
.m
/.m
//
// DateHelper.m
// TestDate
//代码原始地址:http://blog.csdn.net/diyagoanyhacker
// Created by 禚来强 email:[email protected] QQ:1287976580 电话:18671682672 on 12-3-7.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "DateHelper.h"
@interface DateHelper()
+ (int)ordinality:(NSDate *)date_ ordinalitySign:(NSCalendarUnit)ordinalitySign_;
@end
@implementation DateHelper
#pragma mark - 外部接口
+ (int)second:(NSDate *)date_
{
int ordinality = [DateHelperordinality: date_ordinalitySign