123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //
- // NSDate+CL.m
- // CLWeeklyCalendarView
- //
- #import "NSDate+CL.h"
- @implementation NSDate (CL)
- -(NSDate *)getWeekStartDate: (NSInteger)weekStartIndex
- {
- int weekDay = [[self getWeekDay] intValue];
-
- NSInteger gap = (weekStartIndex <= weekDay) ? weekDay : ( 7 + weekDay );
- NSInteger day = weekStartIndex - gap;
-
- return [self addDays:day];
- }
- -(NSNumber *)getWeekDay
- {
- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- NSDateComponents *comps = [gregorian components:NSWeekdayCalendarUnit fromDate:self];
- #else
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- NSDateComponents *comps = [gregorian components:NSCalendarUnitWeekday fromDate:self];
- #endif
- return [NSNumber numberWithInteger:([comps weekday] - 1)];
- }
- -(NSDate *)addDays:(NSInteger)day
- {
- NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
- dayComponent.day = day;
-
- NSCalendar *theCalendar = [NSCalendar currentCalendar];
- return [theCalendar dateByAddingComponents:dayComponent toDate:self options:0];
- }
- -(NSString *)getDayOfWeekShortString
- {
- static NSDateFormatter *shortDayOfWeekFormatter;
- if(!shortDayOfWeekFormatter){
- shortDayOfWeekFormatter = [[NSDateFormatter alloc] init];
- //danson 显示星期几的文字类型
- NSLocale* zh_CN = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
- [shortDayOfWeekFormatter setLocale:zh_CN];
- [shortDayOfWeekFormatter setDateFormat:@"E"];
- }
- return [shortDayOfWeekFormatter stringFromDate:self];
- }
- -(NSString *)getDateOfMonth
- {
- static NSDateFormatter *dateFormaater;
- if(!dateFormaater){
- dateFormaater = [[NSDateFormatter alloc] init];
- NSLocale* en_AU_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_AU_POSIX"];
- [dateFormaater setLocale:en_AU_POSIX];
- [dateFormaater setDateFormat:@"d"];
- }
- return [dateFormaater stringFromDate:self];
- }
- - (NSDate*)midnightDate {
- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
- return [[NSCalendar currentCalendar] dateFromComponents:[[NSCalendar currentCalendar] components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:self]];
- #else
- return [[NSCalendar currentCalendar] dateFromComponents:[[NSCalendar currentCalendar] components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:self]];
- #endif
-
-
- }
- -(BOOL) isSameDateWith: (NSDate *)dt{
- return ([[self midnightDate] isEqualToDate: [dt midnightDate]])?YES:NO;
- }
- - (BOOL)isDateToday {
- return [[[NSDate date] midnightDate] isEqual:[self midnightDate]];
- }
- - (BOOL)isWithinDate: (NSDate *)earlierDate toDate:(NSDate *)laterDate
- {
- NSTimeInterval timestamp = [[self midnightDate] timeIntervalSince1970];
- NSDate *fdt = [earlierDate midnightDate];
- NSDate *tdt = [laterDate midnightDate];
-
- BOOL isWithinDate = (timestamp >= [fdt timeIntervalSince1970] && timestamp <= [tdt timeIntervalSince1970]);
-
- return isWithinDate;
-
- }
- - (BOOL)isPastDate {
- NSDate* now = [NSDate date];
- if([[now earlierDate:self] isEqualToDate:self]) {
- return YES;
- } else {
- return NO;
- }
- }
- @end
- // 版权属于原作者
- // http://code4app.com (cn) http://code4app.net (en)
- // 发布代码于最专业的源码分享网站: Code4App.com
|