Tuesday, June 16, 2015

NSDate Helper Functions:

Get Today's Date:
===========================================

NSDate* date = [NSDate date];



Create a Date From Scratch:
===========================================

NSDateComponents* comps = [[NSDateComponents alloc]init];
comps.year = 2014;
comps.month = 3;
comps.day = 31;

NSCalendar* calendar = [NSCalendar currentCalendar];

NSDate* date = [calendar dateFromComponents:comps];



Add a day to a Date:
===========================================

NSDate* date = [NSDate date];

NSDateComponents* comps = [[NSDateComponents alloc]init];
comps.day = 1;

NSCalendar* calendar = [NSCalendar currentCalendar];

NSDate* tomorrow = [calendar dateByAddingComponents:comps toDate:date options:nil];



Subtract a day from a Date:
===========================================

NSDate* date = [NSDate date];

NSDateComponents* comps = [[NSDateComponents alloc]init];
comps.day = -1;

NSCalendar* calendar = [NSCalendar currentCalendar];

NSDate* yesterday = [calendar dateByAddingComponents:comps toDate:date options:nil];



Convert a Date to a String:
===========================================

NSDate* date = [NSDate date];

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"MMMM dd, yyyy";
NSString* dateString = [formatter stringFromDate:date];



Convert a String to a Date:
===========================================

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"MMMM dd, yyyy";
NSDate* date = [formatter dateFromString:@"August 02, 2014"];



Find how many days are in a month:
===========================================

NSDate* date = [NSDate date];

NSCalendar* cal = [NSCalendar currentCalendar];
NSRange currentRange = [cal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:date];
NSInteger numberOfDays = currentRange.length;



Calculate how much time something took:
===========================================
NSDate* start = [NSDate date];

for(int i = 0; i < 1000000000; i++);

NSDate* end = [NSDate date];
NSTimeInterval duration = [end timeIntervalSinceDate:start];



Find the Day Of Week for a specific Date:
===========================================
NSDate* date = [NSDate date];
NSCalendar* cal = [NSCalendar currentCalendar];
NSInteger dow = [cal ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:date];



Enjoy!


No comments: