gpt4 book ai didi

ios - 如何比较两个日期?

转载 作者:行者123 更新时间:2023-11-29 12:38:45 25 4
gpt4 key购买 nike

我正在为我的 iOS 项目使用 DSLCalenderview。我需要在 DSLCalenderview 的日期中填充颜色。我将特定日期存储到 NSMutablearray 中,并将其与日期对象进行比较。 DSLCalenderview 代码是:

- (void)drawBackground {
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setTimeZone:[NSTimeZone systemTimeZone]];
//[dateformatter setLocale:[NSLocale currentLocale]];
[dateformatter setDateFormat:@"MMMM yyyy dd HH:mm:ss Z"];
if (self.selectionState == DSLCalendarDayViewNotSelected) {
user=[[NSUserDefaults alloc] init];

NSUInteger flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *components = [calendar components:flags fromDate:[self.day date]];

NSDateComponents *componentsOfToday = [calendar components:flags fromDate:[NSDate date]];

date = [calendar dateFromComponents:components];

dateToday = [calendar dateFromComponents:componentsOfToday];

if (self.isInCurrentMonth) {

/*
for (int i=0;i<datearray.count;i++) {

dateSelected=[dateformatter dateFromString:[datearray objectAtIndex:i]];
}


if ([date isEqualToDate:dateSelected]) {

NSLog(@"date selected......... %@",dateSelected);



}
*/

// NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
if ([date isEqualToDate:dateToday]) {
// NSLog(@"inside today......... %@",dateToday);
[[UIColor redColor] setFill];
//from now current day is colored
}
else {

//NSLog(@"date selected %@",dateSelected);
[[UIColor colorWithWhite:245.0 / 255.0 alpha:1.0] setFill];
}

}
else {

// NSLog(@"++++++++++++++++++++++++++++++");
if ([date isEqualToDate:dateToday]) {

[[UIColor greenColor] setFill];

}
else {

[[UIColor colorWithWhite:225.0 / 255.0 alpha:1.0] setFill];
}

for (int i=0;i<datearray.count;i++) {

dateSelected=[dateformatter dateFromString:[datearray objectAtIndex:i]];
NSLog(@"date %@ dateselected %@",date,dateSelected);
NSDateComponents *selected=[calendar components:flags fromDate:dateSelected];
dateSelected=[calendar dateFromComponents:selected];
NSLog(@"date %@ dateselected %@",date,dateSelected);
if ([date isEqualToDate:dateSelected]) {
NSLog(@"inside loop");
[[UIColor grayColor]setFill];
}
}


}
UIRectFill(self.bounds);
}
else {
switch (self.selectionState) {

case DSLCalendarDayViewNotSelected:

NSLog(@"DSLCalendarDayViewNotSelected>>>>+++");

break;

case DSLCalendarDayViewStartOfSelection:

NSLog(@"DSLCalendarDayViewStartOfSelection>>>>+++");
[[[UIImage imageNamed:@"DSLCalendarDaySelection-left"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)] drawInRect:self.bounds];

break;

case DSLCalendarDayViewEndOfSelection:
NSLog(@"DSLCalendarDayViewEndOfSelection>>>>+++");

[[[UIImage imageNamed:@"DSLCalendarDaySelection-right"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)] drawInRect:self.bounds];
break;

case DSLCalendarDayViewWithinSelection:

NSLog(@"DSLCalendarDayViewWithinSelection>>>>+++");



[[[UIImage imageNamed:@"DSLCalendarDaySelection-middle"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)] drawInRect:self.bounds];
break;

case DSLCalendarDayViewWholeSelection:

NSLog(@" DSLCalendarDayViewWholeSelection");


NSLog(@"day select %@",selectedday);
[[NSUserDefaults standardUserDefaults] setObject:selectedday forKey:@"day"];
[[NSUserDefaults standardUserDefaults]synchronize];


[[[UIImage imageNamed:@"DSLCalendarDaySelection"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)] drawInRect:self.bounds];

break;
}
}
}

最佳答案

我想我找到了答案

  for (int i=0;i<datearray.count;i++) {

dateSelected=[dateformatter dateFromString:[datearray objectAtIndex:i]];
NSLog(@"date %@ dateselected %@",date,dateSelected);
NSDateComponents *selected=[calendar components:flags fromDate:dateSelected];
dateSelected=[calendar dateFromComponents:selected];
NSLog(@"date %@ dateselected %@",date,dateSelected);
if ([dateSelected isEqualToDate:date]) { //just swapped values and date will be highlighted
NSLog(@"inside loop");
[[UIColor grayColor]setFill];
}
}

关于ios - 如何比较两个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com