獲取當前年月日與日期的封裝

獲取當月,今年:
spa

NSInteger toMonth = [[NSDate date] YMDComponents].month;.net

NSInteger toYear = [[NSDate date] YMDComponents].year;3d


- (NSDateComponents *)YMDComponents /**<獲取年月日對象*/component

{orm

    return [[NSCalendar currentCalendar] components:對象

            NSCalendarUnitYear|字符串

            NSCalendarUnitMonth|get

            NSCalendarUnitDay fromDate:self];input

}string



新建objective-C文件------選擇category(類別)

 *  @brief  日期格式處理封裝

.h文件:

@interface NSDate (WQCalendarLogic)

- (NSDate *)firstDayOfCurrentYear;/**<當年首日*/


- (NSDate *)firstDayOfCurrentMonth;/**<當月首日*/


- (NSDate *)dayFormerePreviousYear;/**<上一年*/


- (NSDate *)dayFormerePreviousWithYear:(NSInteger)yearNum;/**<上幾年*/


- (NSDate *)dayLastPreviousYear;/**<下一年*/


- (NSDate *)dayInThePreviousMonth;/**<上一個月*/


- (NSDate *)dayInThePreviousWithMonth:(NSInteger)monthNum;/**<當前一個月之前的第monthNum個月*/


- (NSDateComponents *)YMDComponents;/**<獲取年月日對象*/


+ (NSDate *)dateFromString:(NSString *)dateString;/**<NSStringNSDate*/


/**

 *  將傳入日期字符串轉成日期

 *  @param  dateString 日期字符串

 *  @param  format     傳入日期的日期格式

 *  @return  日期

 */

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


- (NSString *)stringFromDate:(NSString *) formatString;/**<NSDate(所需格式的)NSString*/


/**

 *  將日期字符串轉成制定格式的日期字符串

 *  @param dateString   日期字符串

 *  @param dateString   日期字符串的日期格式

 *  @param formatString 轉換後的日期格式

 *  @return 轉換後的日期字符串

 */

+ (NSString *)stringFormString:(NSString *)dateString withDateStringFormat:(NSString *)dateFormate withFormat:(NSString *)formatString;


/**

 *  給你一個方法,輸入參數是NSDate,輸出結果是星期幾的字符串

 *  @param inputDate 日期date

 *  @return 星期幾

 */

+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate;


/**

 *  返回所給日期的幾天後的日期

 *  @param days 天數

 *  @return 幾天後的日期

 */

- (NSDate *)getLasterDay:(NSInteger)days;


@end


.m文件:

#import "NSDate+WQCalendarLogic.h"


@implementation NSDate (WQCalendarLogic)


- (NSDate *)firstDayOfCurrentYear /**<當年首日*/

{

    NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear fromDate:self];

    dateComponents.month = 1;

    dateComponents.day = 1;

    return [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

}


- (NSDate *)firstDayOfCurrentMonth /**<當月首日*/

{

    NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear fromDate:self];

    dateComponents.month = [[NSDate date] YMDComponents].month;

    dateComponents.day = 1;

    return [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

}


- (NSDate *)dayFormerePreviousYear /**<上一年*/

{

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

    dateComponents.year = -1;

    return [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:self options:0];

}


- (NSDate *)dayFormerePreviousWithYear:(NSInteger)yearNum /**<上幾年*/

{

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

    dateComponents.year = yearNum;

    return [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:self options:0];

}


- (NSDate *)dayLastPreviousYear /**<下一年*/

{

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

    dateComponents.year = +1;

    return [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:self options:0];

}


- (NSDate *)dayInThePreviousMonth /**<上一個月*/

{

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

    dateComponents.month = -1;

    return [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:self options:0];

}


- (NSDate *)dayInThePreviousWithMonth:(NSInteger)monthNum /**<當前一個月之前的第monthNum個月*/

{

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

    dateComponents.month = -monthNum;

    return [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:self options:0];

}


- (NSDateComponents *)YMDComponents /**<獲取年月日對象*/

{

    return [[NSCalendar currentCalendar] components:

            NSCalendarUnitYear|

            NSCalendarUnitMonth|

            NSCalendarUnitDay fromDate:self];

}


+ (NSDate *)dateFromString:(NSString *)dateString /**<NSStringNSDate*/

{

    

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

    

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

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

    

    NSDate *destDate = [dateFormatter dateFromString:dateString];

    

    return destDate;

    

}


+ (NSDate *)dateFromString:(NSString *)dateString withFormat:(NSString *)format

{

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

    [dateFormatter setDateFormat:format];

    NSDate *destDate = [dateFormatter dateFromString:dateString];

    

    return destDate;

}


- (NSString *)stringFromDate:(NSString *) formatString /**<NSDate(所需格式的)NSString*/

{

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

    

    //zzz表示時區,zzz能夠刪除,這樣返回的日期字符將不包含時區信息。

    

//    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"];

    [dateFormatter setDateFormat:formatString];

    

    NSString *destDateString = [dateFormatter stringFromDate:self];

    

    return destDateString;

}


+ (NSString *)stringFormString:(NSString *)dateString withDateStringFormat:(NSString *)dateFormate withFormat:(NSString *)formatString

{

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

    

    [dateFormatter setDateFormat:dateFormate];

    

    NSDate *destDate = [dateFormatter dateFromString:dateString];

//    NSDate *date = [self dateFromString:dateString];

    return [destDate stringFromDate:formatString];

}


//給你一個方法,輸入參數是NSDate,輸出結果是星期幾的字符串。

+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate

{

    NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"星期日", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六", nil];

    

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

    

    NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Beijing"];

    

    [calendar setTimeZone: timeZone];

    

    NSCalendarUnit calendarUnit = NSWeekdayCalendarUnit;

    

    NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate];

    

    return [weekdays objectAtIndex:theComponents.weekday];

}


- (NSDate *)getLasterDay:(NSInteger)days

{


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

    comps.day = days;

    

    NSLog(@"%ld:%ld:%ld", comps.year, comps.month,comps.day);

    return [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:self options:0];

    

}


@end

相關文章
相關標籤/搜索