From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/screendisplay/Classes/Utility/DateUtil.m | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 227 insertions(+), 0 deletions(-) diff --git a/screendisplay/screendisplay/Classes/Utility/DateUtil.m b/screendisplay/screendisplay/Classes/Utility/DateUtil.m new file mode 100755 index 0000000..1bac353 --- /dev/null +++ b/screendisplay/screendisplay/Classes/Utility/DateUtil.m @@ -0,0 +1,227 @@ +// +// DateUtil.m +// airtree +// +// Created by WindShan on 2016/11/17. +// Copyright �� 2016��� Gloria. All rights reserved. +// + +#import "DateUtil.h" + +#define YMDFormat @"YYYY-MM-dd" +#define YMDEHMFormat @"YYYY-MM-dd EEE HH:mm" +#define YMDHMSFormat @"YYYY-MM-dd HH:mm:ss" + +static NSDateFormatter *s_formatterYMD = nil; +static NSDateFormatter *s_formatterYMDEHM = nil; +static NSDateFormatter *s_formatterYMDHMS = nil; + +@implementation DateUtil + ++ (NSDate *)adjustDateHour:(NSDate *)srcDate + minHour:(NSUInteger)minHour + maxHour:(NSUInteger)maxHour + fitHour:(NSUInteger)fitHour +{ + //��������������������� + if (srcDate == nil) { + return srcDate; + } + if (minHour >= 24 || maxHour >= 24 || fitHour >=24) { + minHour %= 24; + maxHour %= 24; + fitHour %= 24; + } + + NSInteger unitFlags = NSHourCalendarUnit; + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *componets = [calendar components:unitFlags fromDate:srcDate]; + NSInteger hour = [componets hour]; + + if (hour <= minHour) { + //(NSInteger)(fitHour-hour)*60*60������������������NSInteger������������������������������������������������������������������double������ + srcDate = [srcDate dateByAddingTimeInterval:(NSInteger)(fitHour-hour)*60*60]; + } + else if (hour >= maxHour) { + srcDate = [srcDate dateByAddingTimeInterval:(24+fitHour-hour)*60*60]; + } + + return srcDate; +} + ++ (NSString *)stringFromDate:(NSDate *)date + formater:(NSDateFormatter * __strong *)formatter + format:(NSString *)format +{ + if (*formatter == nil) { + *formatter = [[NSDateFormatter alloc] init]; + + [*formatter setLocale:[NSLocale currentLocale]]; + [*formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]]; + [*formatter setDateStyle:NSDateFormatterMediumStyle]; + [*formatter setTimeStyle:NSDateFormatterShortStyle]; + [*formatter setDateFormat:format]; + } + + return [*formatter stringFromDate:date]; +} + ++ (NSDate *)dateFromString:(NSString *)dateString + formater:(NSDateFormatter * __strong *)formatter + format:(NSString *)format +{ + if (dateString.length <= 0) { + return [NSDate date]; + } + if (*formatter == nil) { + *formatter = [[NSDateFormatter alloc] init]; + + [*formatter setLocale:[NSLocale currentLocale]]; + [*formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]]; + [*formatter setDateStyle:NSDateFormatterMediumStyle]; + [*formatter setTimeStyle:NSDateFormatterShortStyle]; + [*formatter setDateFormat:format]; + } + + return [*formatter dateFromString:dateString]; +} + + ++ (NSString *)stringFromDateYMD:(NSDate *)date +{ + return [DateUtil stringFromDate:date formater:&s_formatterYMD format:YMDFormat]; +} + ++ (NSDate *)dateFromStringYMD:(NSString *)dateString +{ + return [DateUtil dateFromString:dateString formater:&s_formatterYMD format:YMDFormat]; +} + ++ (NSString *)stringFromDateYMDEHM:(NSDate *)date +{ + return [DateUtil stringFromDate:date formater:&s_formatterYMDEHM format:YMDEHMFormat]; +} + ++ (NSDate *)dateFromStringYMDEHM:(NSString *)dateString +{ + return [DateUtil dateFromString:dateString formater:&s_formatterYMDEHM format:YMDEHMFormat]; +} + ++ (NSString *)stringFromDateYMDHMS:(NSDate *)date +{ + return [DateUtil stringFromDate:date formater:&s_formatterYMDHMS format:YMDHMSFormat]; +} + ++ (NSDate *)dateFromStringYMDHMS:(NSString *)dateString +{ + return [DateUtil dateFromString:dateString formater:&s_formatterYMDHMS format:YMDHMSFormat]; +} + ++ (NSString *)getYear:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + /* + // ��������������� + comps = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | + NSDayCalendarUnit + fromDate:date]; + */ + comps = [calendar components:NSCalendarUnitYear fromDate:date]; + NSString *year = [NSString stringWithFormat:@"%@", @([comps year])]; + + return year; +} + ++ (NSString *)getMonth:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + comps = [calendar components:NSCalendarUnitMonth fromDate:date]; + NSString *month = [NSString stringWithFormat:@"%@", @([comps month])]; + + return month; +} + ++ (NSString *)getDay:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + comps = [calendar components: + NSCalendarUnitDay fromDate:date]; + NSString *day = [NSString stringWithFormat:@"%@", @([comps day])]; + + return day; +} + ++ (NSString *)getHour:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + comps = [calendar components: + NSCalendarUnitHour fromDate:date]; + NSString *hour = [NSString stringWithFormat:@"%@", @([comps day])]; + + return hour; +} + ++ (NSString *)getMinute:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + comps = [calendar components: + NSCalendarUnitMinute fromDate:date]; + NSString *minute = [NSString stringWithFormat:@"%@", @([comps day])]; + + return minute; +} + ++ (NSString *)getSecond:(NSDate *)date +{ + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = nil; + + comps = [calendar components: + NSCalendarUnitSecond fromDate:date]; + NSString *second = [NSString stringWithFormat:@"%@", @([comps day])]; + + return second; +} + ++ (NSString *)stringFromLong:(long)date +{ + NSDate *dateTime = [[NSDate alloc] initWithTimeIntervalSinceNow:date/1000]; + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setTimeStyle:NSDateFormatterNoStyle]; + [formatter setDateStyle:NSDateFormatterMediumStyle]; + NSLocale *formatterLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"en_us"]; + [formatter setLocale:formatterLocal]; + [formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; + NSString *dateString = [formatter stringFromDate:dateTime]; + + return dateString; +} + +//���������������������n������������������ 2015-10-30 ++ (NSString *)stringFromOffDateYMD:(NSDate *)date dayCount:(int)day +{ + NSTimeInterval time = day * 24 * 60 * 60;//n������������ + //������������������������������������-��������������������������������������������������������������������������������������������������������������� + NSDate * lastDateTime = [date dateByAddingTimeInterval:time]; + + return [DateUtil stringFromDateYMD:lastDateTime]; +} + +//��������������� ++ (BOOL)isToday:(NSString *)dateString +{ + NSString *nowString = [DateUtil stringFromDateYMD:[NSDate date]]; + return [nowString isEqualToString:dateString]; +} + +@end -- Gitblit v1.8.0