Я хочу показать «Сегодня» или «Завтра» на ярлыке, если настало время или сегодня, и показать его в «dd-mm-yyy», формат для остальных.Компоненты дня: разница между днями между двумя датами, неправильными для сегодняшнего дня и завтра
Все работает почти идеально, кроме того, что (учитывая, что сегодня 7 июня):
- Если установить срок платежа на сегодня (7 июня) или завтра (8 июня), этикетка обновлен с текстом «Сегодня».
- Если я установил дату платежа послезавтра (9 июня), он отобразит «Завтра».
Это мой код:
- (void)configureDueLabelForCell:(UITableViewCell *)cell withChecklistItem:(ChecklistItem *)item
{
UILabel *label = (UILabel *)[cell viewWithTag:1002];
if (item.shouldRemind) {
int difference = [self dateDiffrenceToDate:item.dueDate];
if (difference == 0) {
label.text = @"Today";
} else if (difference == 1) {
label.text = @"Tomorrow";
} else {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// [formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"dd-MM-yyyy"];
label.text = [formatter stringFromDate:item.dueDate];
}
} else {
label.text = @"";
}
}
-(int)dateDiffrenceToDate:(NSDate *)dueDate
{
// Manage Date Formation same for both dates
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy"];
NSDate *startDate = [NSDate date];
NSDate *endDate = dueDate;
unsigned flags = NSDayCalendarUnit;
NSDateComponents *difference = [[NSCalendar currentCalendar] components:flags fromDate:startDate toDate:endDate options:0];
int dayDiff = [difference day];
return dayDiff;
}
Я также попытался:
// NSDate *startDate = [NSDate date];
// NSDate *endDate = dueDate;
//
// NSTimeInterval secondsBetween = [endDate timeIntervalSinceDate:startDate];
//
// int numberOfDays = secondsBetween/86400;
// NSLog(@"numberofdays: %d", numberOfDays);
//
// return numberOfDays;
Ohh .. Теперь это имеет смысл .. Спасибо .. есть ли способ, который я могу сравнить только с датой, а не временем? – ZyreX
Или рассчитать часы до полуночи, а также часы до установленной даты. Если часы до полуночи меньше, – Fred
Спасибо .. Я попробую – ZyreX