JLChen
2021-05-18 a869383e163a18cdedcf587383c1eca043129754
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
//
//  Copyright © 2015年 dahua. All rights reserved.
//  日期扩展
 
//分钟、小时、天、年对应的秒数
#define SEC_MINUTE      60
#define SEC_HOUR        (60*SEC_MINUTE)
#define SEC_DAY         (24*SEC_HOUR)
#define SEC_YEAR        (365*SEC_DAY)
 
typedef struct
{
    int year;
    int month;
    int day;
    int week;
    int hour;
    int minute;
    int second;
}Time_Info;
 
#import <Foundation/Foundation.h>
 
@interface NSDate (LeChange)
 
/**
 获取当前设置的日历,默认使用NSCalendarIdentifierGregorian
 
 @return NSCalendar
 */
+ (NSCalendar *) lc_currentCalendar;
 
/**
 设置默认的日历
 
 @param identifier NSCalendarIdentifier
 */
+ (void)lc_setCurrentCanlendar:(NSCalendarIdentifier)identifier;
 
//常用属性
@property (readonly) NSInteger hour;
@property (readonly) NSInteger minute;
@property (readonly) NSInteger seconds;
@property (readonly) NSInteger day;
@property (readonly) NSInteger month;
@property (readonly) NSInteger weekOfYear;
@property (readonly) NSInteger weekday;
@property (readonly) NSInteger year;
 
 
/**
 *  将NSString转为NSDate
 *
 *  @param dateString 日期字符串
 *  @param format 日期格式
 *  @return 日期
 */
+ (NSDate *)lc_dateOfString:(NSString*)dateString withFormat:(NSString *)format;
 
/**
 *  将int毫秒数转为HH:mm:ss格式
 *
 *  @param time 时间毫秒数
 *
 *  @return HH:mm:ss格式时间
 */
+ (NSString*)lc_timeByLength:(NSInteger)time;
 
/**
 *  将NSDate转为描述
 *  @return 昨天 12:23
 */
- (NSString *)lc_dateDescription;
 
/**
 *  将NSString转为NSDate格式
 *
 *  @param timeString 时间2014-12-1 12:12:12
 *
 *  @return NSDate
 */
+ (NSDate *)lc_stringToDate:(NSString *)timeString format:(NSString*)format;
 
/**
 *  将NSInteger转为特定格式字符串
 *
 *  @param NSTimeInterval 时间毫秒数
 *  @param format     格式
 *
 *  @return 时间
 */
+ (NSString *)lc_stringOfTimeInterval:(NSTimeInterval)timeInterval format:(NSString*)format;
 
//常用日期方法
/**
 *  返回指定日期的 xxxx-xx-xx 00:00:00形式
 *  @return 日期
 */
- (NSDate *)lc_dateAtStartOfDay;
 
/**
 *  返回指定日期的 xxxx-xx-xx 23:59:59形式
 *  @return 日期
 */
- (NSDate *)lc_dateAtEndOfDay;
 
/**
 *  返回前一天
 *  @return 日期
 */
- (NSDate *)lc_dateBeforeDay;
 
/**
 *  返回后一天
 *  @return 日期
 */
- (NSDate *)lc_dateAfterDay;
 
 
//字符串方法
/**
 *  日期的字符串的默认形式,yyyy-MM-dd HH:mm:ss
 *  @return 日期
 */
- (NSString *)lc_stringRepresentation;
 
/**
 *  日期的字符串形式
 *
 *  @param formator 日期格式
 *
 *  @return 日期
 */
- (NSString *)lc_stringOfDateWithFormator:(NSString *)formator;
 
- (NSString *)lc_stringDateAtStartOfDay;
 
- (NSString *)lc_stringDateAtEndOfDay;
 
 
//时间比较方法
- (BOOL)lc_isEqualToDateIgnoringTime:(NSDate *)compareDate;
- (BOOL)lc_isToday;
- (BOOL)lc_isYesterday;
- (BOOL)lc_isInFuture;
- (BOOL)lc_isInPast;
 
#pragma mark - PubFun 分离
 
+ (NSString *)lc_currentTimeString;
 
- (Time_Info)lc_timeInfo;
 
+ (NSDate *)lc_dateFromString:(NSString *)string;
 
+ (NSDate *)lc_dateFromString:(NSString *)string format:(NSString *)format;
 
/**
 *  返回当天的日期及时间
 *
 *  @param string 日期字符串
 *
 *  @return 日期
 */
+ (NSDate *)lc_todayFromString:(NSString *)string;
 
+ (NSString *)lc_stringOfDate:(NSDate *)date format:(NSString *)format;
 
+ (NSDate *)lc_dateOfTimeInfo:(Time_Info)timeInfo;
 
///dateString返回HH:mm格式
+ (NSString *)lc_stringDateBeginWithHour:(NSString *)dateString;
 
+ (NSString *)lc_nextDayStringWithString:(NSString *)string;
 
///时、分是否晚于当前时间
+ (BOOL)lc_isLaterThanCurrentTimeByHour:(int)hour minute:(int)minute;
 
///返回yyyy-mm-dd HH:mm:ss的格式
+ (NSString *)lc_stringDate:(NSDate *)date;
 
@end