Reputation: 437
How do I set the time of the DatePicker at 00:00:00 of the current date?
- (void) awakeFromNib
{
[datePicker setDateValue:[NSDate date]];
NSDate *now = [NSDate date];
int daysToAdd = 364;
NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*daysToAdd];
[datePicker1 setDateValue:newDate1];
}
Upvotes: 0
Views: 4348
Reputation: 243146
cringe
It looks like you have two different datePickers? datePicker
and datePicker1
? What's up with that?
Also, this does not do what you're expecting:
NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*364];
That is creating a new date that is exactly 31,449,600 seconds in the future. It is not doing anything other than that.
What you want to do is extract all of the date components from the current date and zero them out:
NSDate *now = [NSDate date];
NSDateComponents *nowComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:now];
// technically these next lines are unnecessary, since we only pulled out the era-year-month-day, but they're included here for understanding/completeness:
[nowComponents setHour:0];
[nowComponents setMinute:0];
[nowComponents setSecond:0];
// now we can turn it back into a date:
NSDate *todayAtMidnight = [[NSCalendar currentCalendar] dateFromComponents:nowComponents];
Upvotes: 3