獲取當月,今年:
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;/**<NSString轉NSDate*/
/**
* 將傳入日期字符串轉成日期
* @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 /**<NSString轉NSDate*/
{
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