您的位置:首页 > 移动开发 > IOS开发

CYC- IOS 常用的一些小东西

2015-09-28 20:57 423 查看
获取时间差,(几天前,几小时前,几分钟前)

+ (NSString *) getTimeDiffString:(NSTimeInterval) timestamp
{

NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *todate = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSDate *today = [NSDate date];//当前时间
unsigned int unitFlag = NSDayCalendarUnit | NSHourCalendarUnit |NSMinuteCalendarUnit;
NSDateComponents *gap = [cal components:unitFlag fromDate:today toDate:todate options:0];//计算时间差

if (ABS([gap day]) > 0)
{
return [NSString stringWithFormat:@"%d天前", ABS([gap day])];
}else if(ABS([gap hour]) > 0)
{
return [NSString stringWithFormat:@"%d小时前", ABS([gap hour])];
}else
{
return [NSString stringWithFormat:@"%d分钟前",  ABS([gap minute])];
}
}


获取本月,本周,本季度第一天的时间戳

+ (unsigned long long)getFirstDayOfWeek:(unsigned long long)timestamp
{
NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSCalendar *cale = [NSCalendar currentCalendar];
NSDateComponents *comps = [cale components:NSYearCalendarUnit| NSMonthCalendarUnit| NSWeekCalendarUnit | NSWeekdayCalendarUnit |NSWeekdayOrdinalCalendarUnit fromDate:now];
if (comps.weekday <2)
{
comps.week = comps.week-1;
}
comps.weekday = 2;
NSDate *firstDay = [cale dateFromComponents:comps];
return [firstDay timeIntervalSince1970];
}

+ (unsigned long long)getFirstDayOfQuarter:(unsigned long long)timestamp
{
NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSCalendar *cale = [NSCalendar currentCalendar];
NSDateComponents *comps = [cale components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:now];
if (comps.month <=3)
{
comps.month =  1;
}
else if(comps.month<=6)
{
comps.month =  4;
}
else if(comps.month<=9)
{
comps.month =  7;
}
else if(comps.month<=12)
{
comps.month =  10;
}

comps.day = 1;
NSDate *firstDay = [cale dateFromComponents:comps];
return [firstDay timeIntervalSince1970]*1000;
}

+ (unsigned long long)getFirstDayOfMonth:(unsigned long long)timestamp
{
NSDate *now = [NSDate dateWithTimeIntervalSince1970:timestamp/1000];
NSCalendar *cale = [NSCalendar currentCalendar];
NSDateComponents *comps = [cale  components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit  fromDate:now];
comps.day = 1;
NSDate *firstDay = [cale dateFromComponents:comps];
return [firstDay timeIntervalSince1970]*1000;
}


添加推送消息

- (void)setPushNotification
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"获取设备的deviceToken: %@", deviceToken);
}

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error{

NSLog(@"Failed to get token, error: %@", error);
}


判断是否越狱

static const char * __jb_app = NULL;

+ (BOOL)isJailBroken
{
static const char * __jb_apps[] =
{
"/Application/Cydia.app",
"/Application/limera1n.app",
"/Application/greenpois0n.app",
"/Application/blackra1n.app",
"/Application/blacksn0w.app",
"/Application/redsn0w.app",
NULL
};

__jb_app = NULL;

// method 1
for ( int i = 0; __jb_apps[i]; ++i )
{
if ( [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:__jb_apps[i]]] )
{
__jb_app = __jb_apps[i];
return YES;
}
}

// method 2
if ( [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"] )
{
return YES;
}

// method 3
if ( 0 == system("ls") )
{
return YES;
}

return NO;
}

+ (NSString *)jailBreaker
{
if ( __jb_app )
{
return [NSString stringWithUTF8String:__jb_app];
}
else
{
return @"";
}
}


屏幕截图并保存到相册

+ (UIImage*)saveImageFromView:(UIView*)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}

+ (void)savePhotosAlbum:(UIImage *)image
{
UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), nil);
}

+ (void)saveImageFromToPhotosAlbum:(UIView*)view
{
UIImage *image = [self saveImageFromView:view];
[self savePhotosAlbum:image];
}

- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *) contextInfo
{
NSString *message;
NSString *title;
if (!error) {
title = @"成功提示";
message = @"成功保存到相";
} else {
title = @"失败提示";
message = [error description];
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:nil
cancelButtonTitle:@"知道了"
otherButtonTitles:nil];
[alert show];
[alert release];
}


获取本地的语言

+ (NSString *)getLocalLanguage
{
NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];
return language;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios timestamp nsdate