NSDate+PGCategory.m
4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//
// NSDate+PGCategory.m
//
// Created by piggybear on 2017/8/1.
// Copyright © 2017年 piggybear. All rights reserved.
//
#import "NSDate+PGCategory.h"
@implementation NSDate (PGCategory)
static const NSCalendarUnit unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | NSCalendarUnitWeekday;
+ (NSDate *)setYear:(NSInteger)year {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setYear:year];
[components setMonth:1];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setYear:(NSInteger)year month:(NSInteger)month {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setYear:year];
[components setMonth:month];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day hour:(NSInteger)hour minute:(NSInteger)minute {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
[components setHour:hour];
[components setMinute:minute];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day hour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
[components setHour:hour];
[components setMinute:minute];
[components setSecond:second];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setMonth:(NSInteger)month day:(NSInteger)day hour:(NSInteger)hour minute:(NSInteger)minute {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setMonth:month];
[components setDay:day];
[components setHour:hour];
[components setMinute:minute];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setHour:(NSInteger)hour minute:(NSInteger)minute {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setHour:hour];
[components setMinute:minute];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setMinute:(NSInteger)minute second:(NSInteger)second {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setMinute:minute];
[components setSecond:second];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
+ (NSDate *)setHour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
[components setHour:hour];
[components setMinute:minute];
[components setSecond:second];
NSDate *date = [calendar dateFromComponents:components];
return date;
}
- (NSInteger)howManyDaysWithMonth {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:self];
NSInteger day = range.length;
return day;
}
@end