cdts/xdts-ios 3/TreeHole/Code/Gategory/NSString+PYExtension.m

159 lines
4.8 KiB
Mathematica
Raw Normal View History

2023-07-27 09:20:00 +08:00
//
// NSString+Extension.m
//
//
// Created by on 15/12/15.
// Copyright © 2015 iphone5solo. All rights reserved.
//
#import "NSString+PYExtension.h"
@implementation NSString (PYExtension)
- (CGSize)sizeWithMaxWidth:(CGFloat)maxWidth font:(UIFont *)font
{
NSMutableDictionary *attr = [NSMutableDictionary dictionary];
attr[NSFontAttributeName] = font;
return [self boundingRectWithSize:CGSizeMake(maxWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size;
}
// -- >
+ (NSString *)intervalToDateWithIntervalString:(NSString *)intervalString
{
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[intervalString longLongValue]];
//
NSDateFormatter *dateF = [[NSDateFormatter alloc] init];
dateF.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateStr = [dateF stringFromDate:date];
return dateStr;
}
// -->
+ (NSString *)dateToIntervalWithDate:(NSDate *)date
{
NSTimeInterval time = [[NSDate date] timeIntervalSince1970];
long long int dateStr = (long long int)time;
return [NSString stringWithFormat:@"%lld", dateStr];
}
+ (NSString *)dayStringFromInterval:(NSTimeInterval)time
{
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
//
NSDateFormatter *dateF = [[NSDateFormatter alloc] init];
dateF.dateFormat = @"yyyy-MM-dd";
NSString *dateStr = [dateF stringFromDate:date];
return dateStr;
}
/**
* ...
*/
- (NSString *)dateToNowWithDate:(NSDate *)createDate
{
//
// NSDate *time = [NSDate dateWithTimeIntervalSince1970:[self longLongValue]];
// NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// // locale
// fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
//
// //
// // E:
// // M:
// // d:()
// // H:24
// // m:
// // s:
// // y:
//// fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
// fmt.dateFormat = @"yyyy-MM-dd";
// // _createAt = @"Tue Sep 30 17:06:25 +0800 2014";
if ([self isThisYear:createDate]) { //
if ([self isYesterday:createDate]) { //
return @"昨日";
} else if ([self isToday:createDate]) { //
return @"今日";
} else { //
return nil;
}
} else { //
return nil;
}
}
/**
*
*/
- (BOOL)isToday:(NSDate *)time
{
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd";
NSString *dateStr = [fmt stringFromDate:time];
NSString *nowDateStr = [fmt stringFromDate:[NSDate date]];
NSDate *date = [fmt dateFromString:dateStr];
NSDate *now = [fmt dateFromString:nowDateStr];
//
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *cmp = [calendar components:unit fromDate:date toDate:now options:0];
return cmp.year == 0 && cmp.month == 0 && cmp.day == 0;
}
/**
*
*/
- (BOOL)isThisYear:(NSDate *)time
{
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy";
NSString *dateStr = [fmt stringFromDate:time];
NSString *nowDateStr = [fmt stringFromDate:[NSDate date]];
NSDate *date = [fmt dateFromString:dateStr];
NSDate *now = [fmt dateFromString:nowDateStr];
//
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear;
NSDateComponents *cmp = [calendar components:unit fromDate:date toDate:now options:0];
return cmp.year == 0;
}
/**
*
*/
- (BOOL)isYesterday:(NSDate *)time
{
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd";
NSString *dateStr = [fmt stringFromDate:time];
NSString *nowDateStr = [fmt stringFromDate:[NSDate date]];
NSDate *date = [fmt dateFromString:dateStr];
NSDate *now = [fmt dateFromString:nowDateStr];
//
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *cmp = [calendar components:unit fromDate:date toDate:now options:0];
return cmp.year == 0 && cmp.month == 0 && cmp.day == 1;
}
@end