gpt4 book ai didi

ios - 如何根据 TAPKU 日历中的日期检查 NSDate

转载 作者:行者123 更新时间:2023-11-28 20:42:25 25 4
gpt4 key购买 nike

我正在使用核心数据为我的项目存储对象。对象中有一个日期字段。我想检查 iphone 的 Tapku 日历组件的点击日期。我对象上的日期格式为

2011-01-10,这是一个本地化的日期。

我如何根据从 tapku 日历控件返回的日期检查日期。

最佳答案

是的,你可以,这是我为让它工作所做的:

关于方法:(NSArray*)calendarMonthView:(TKCalendarMonthView *)monthView marksFromDate:(NSDate *)startDate toDate:(NSDate *)lastDate

  • 进行正常的核心数据获取以获取对象数组
  • 开始使用 [NSArray indexesOfObjectsPassingTest:] 方法从 startDate 到 lastDate 每天检查
  • 对于所有通过测试的对象,将对象添加到 marks 数组,并添加一个以测试日期为键、获取的对象为值的字典

警告:确保将 NSDate 对象转换为无时间和 GMT:0 日期,以便进行日期比较(通过艰难的方式学习...)

这是一些代码...

self.marksArray = [NSMutableArray array];
self.dataDictionary = [NSMutableDictionary dictionary];

NSCalendar *cal = [NSCalendar currentCalendar];
[cal setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSDateComponents *comp = [cal components:(NSMonthCalendarUnit | NSMinuteCalendarUnit | NSYearCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSSecondCalendarUnit) fromDate:start];

NSDate *ds = [cal dateFromComponents:comp];

// Init offset components to increment days in the loop by one each time
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:1];


while (YES) {
// Is the date beyond the last date? If so, exit the loop.
// NSOrderedDescending = the left value is greater than the right
if ([ds compare:end] == NSOrderedDescending) {
break;
}

NSIndexSet *indexes = [arrayWithObjectsFromCoreData indexesOfObjectsPassingTest:
^BOOL (id el, NSUInteger i, BOOL *stop) {
NSDate *upd = [(YOUR_ENTINY *)el updated];

NSDate *day=[self midnightUTC:upd];
if([ds isSameDay:day]){
return TRUE;
}
return FALSE;
}];



if (indexes.count>0) {

[self.marksArray addObject:[NSNumber numberWithBool:YES]];
[self.dataDictionary setObject:[wods objectsAtIndexes:indexes] forKey:ds];


}else {
//no wods in this date
[self.dataArray addObject:[NSNumber numberWithBool:NO]];
}

// Increment day using offset components (ie, 1 day in this instance)
ds = [cal dateByAddingComponents:offsetComponents toDate:ds options:0];



}
[offsetComponents release];

midnightUTC 方法可以在这里找到: http://www.voidasterisk.org/post/4209842795/how-to-calculate-nsdate-of-midnight-in-ios

关于ios - 如何根据 TAPKU 日历中的日期检查 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7898895/

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