有用的日期转换类(包括评论发送时间计算)

文章转自:http://blog.sina.com.cn/s/blog_d8ceeed30101biwd.html



NSDate+Helper.h文件内容

#import <Foundation/Foundation.h>


@interface NSDate (Helper)


- (NSString *)getFormatYearMonthDay;//获取年月日如:19871127.

- (int )getWeekNumOfMonth;//返回当前月一共有几周(可能4,5,6)

- (int )getWeekOfYear;//该日期是该年的第几周

- (NSDate *)dateAfterDay:(int)day;//返回day天后的日期(day为负数,则为|day|天前的日期)

- (NSDate *)dateafterMonth:(int)month;//month个月后的日期


- (NSString *)elapsedTimeByNow;

- (NSUInteger)getDay;//获取日

- (NSUInteger)getMonth;//获取月

- (NSUInteger)getYear;//获取年

- (int )getHour;//获取小时

- (int)getMinute;//获取分钟

+ (int)getHour:(NSDate *)date;

+ (int)getMinute:(NSDate *)date;


- (NSUInteger)daysAgo;//在当前日期前几天

- (NSDate *)dayMidnight;

- (NSUInteger)daysAgoAgainstMidnight;//午夜时间距今几天

- (NSUInteger)daysAgoAgainstMidnight:(NSDate *)date;//午夜时间距指定日期几天

- (NSString *)stringDaysAgo;

- (NSString *)stringDaysAgoAgainstMidnight:(BOOL)flag;

- (NSUInteger)weekday;//返回一周的第几天(周末为第一天)


+ (NSDate *)dateFromString:(NSString *)string;

+ (NSDate *)dateFromString:(NSString *)string withFormat:(NSString *)format;

+ (NSString *)stringFromDate:(NSDate *)date withFormat:(NSString *)string;

+ (NSString *)stringFromDate:(NSDate *)date;

+ (NSString *)stringForDisplayFromDate:(NSDate *)date;

+ (NSString *)stringForDisplayFromDate:(NSDate *)date prefixed:(BOOL)prefixed;

+ (NSString *)stringForDisplayFromDate:(NSDate *)date prefixed:(BOOL)prefixed alwaysDisplayTime:(BOOL)displayTime;


- (NSString *)string;

- (NSString *)stringWithFormat:(NSString *)format;

- (NSString *)stringWithDateStyle:(NSDateFormatterStyle)dateStyle timeStyle:(NSDateFormatterStyle)timeStyle;


- (NSDate *)beginningOfWeek;//返回周日的的开始时间

- (NSDate *)beginningOfDay;//返回当前天的年月日.

- (NSDate *)beginningOfMonth;//返回该月的第一天

- (NSDate *)endOfMonth;//该月的最后一天

- (NSDate *)endOfWeek;//返回当前周的周末


+ (NSString *)dateFormatString;

+ (NSString *)timeFormatString;

+ (NSString *)timestampFormatString;

+ (NSString *)dbFormatString;

- (NSString *)stringWeekday;

- (NSString *)stringShortWeekday;

@end

NSDate+Helper.m文件内容

#import "NSDate+Helper.h"


static NSCalendar *calendar;

static NSDateFormatter *displayFormatter;


@implementation NSDate (Helper)


+ (void)load {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    

    calendar = [[NSCalendar currentCalendar] retain];

    displayFormatter = [[NSDateFormatter alloc] init];

    

[pool drain];

}


//获取年月日如:19871127.

- (NSString *)getFormatYearMonthDay

{

    NSString *string = [NSString stringWithFormat:@"%d%02d%02d",[self getYear],[self getMonth],[self getDay]];

    return string;

}

//返回当前月一共有几周(可能4,5,6)

- (int )getWeekNumOfMonth

{

    return [[self endOfMonth] getWeekOfYear] - [[self beginningOfMonth] getWeekOfYear] + 1;

}

//该日期是该年的第几周

- (int )getWeekOfYear

{

    int i;

    int year = [self getYear];

    NSDate *date = [self endOfWeek];

    for (i = 1;[[date dateAfterDay:-7 * i] getYear] == year;i++)

        {

            }

    return i;

}


//返回day天后的日期(day为负数,则为|day|天前的日期)

- (NSDate *)dateAfterDay:(int)day

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    // Get the weekday component of the current date

    // NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:self];

    NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];

    // to get the end of week for a particular date, add (7 - weekday) days

    [componentsToAdd setDay:day];

    NSDate *dateAfterDay = [calendar dateByAddingComponents:componentsToAdd toDate:selfoptions:0];

    [componentsToAdd release];

    

    return dateAfterDay;

}

//month个月后的日期

- (NSDate *)dateafterMonth:(int)month

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];

    [componentsToAdd setMonth:month];

    NSDate *dateAfterMonth = [calendar dateByAddingComponents:componentsToAdd toDate:selfoptions:0];

    [componentsToAdd release];

    

    return dateAfterMonth;

}


//获取日

- (NSUInteger)getDay{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *dayComponents = [calendar components:(NSDayCalendarUnitfromDate:self];

    return [dayComponents day];

}

//获取月

- (NSUInteger)getMonth

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *dayComponents = [calendar components:(NSMonthCalendarUnitfromDate:self];

    return [dayComponents month];

}

//获取年

- (NSUInteger)getYear

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *dayComponents = [calendar components:(NSYearCalendarUnitfromDate:self];

    return [dayComponents year];

}


//获取小时

- (int )getHour {

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSUInteger unitFlags =NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit|NSHourCalendarUnit |NSMinuteCalendarUnit;

    NSDateComponents *components = [calendar components:unitFlags fromDate:self];

    NSInteger hour = [components hour];

    return (int)hour;

}

//获取分钟

- (int)getMinute {

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSUInteger unitFlags =NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit|NSHourCalendarUnit |NSMinuteCalendarUnit;

    NSDateComponents *components = [calendar components:unitFlags fromDate:self];

    NSInteger minute = [components

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值