0

我需要一些帮助才能使我的静态工作...我使用核心数据来存储来自用户输入的值,并且每条“行”都有一个时间值。

现在我需要计算其中一些特定时间范围内的值,比如说过去 30 天。但我不知道该怎么做,我对使用日期和时间游侠有点陌生。

有人可以帮帮我吗?

亲切的问候,英格玛

4

2 回答 2

0

您需要使用谓词来过滤数据。

NSManagedObjectContext *context; // Assume this exists.
NSEntityDescription *entityDescription; // Assume this exists.
NSDate minDate, maxDate; // Assume these exist.

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];

NSPredicate *setPredicate:predicate = [NSPredicate predicateWithFormat:@"date BETWEEN %@",
                                     [NSArray arrayWithObjects:minDate, maxDate, nil]];
[request setPredicate:predicate];

NSError *error;
NSArray *filteredResult = [context executeFetchRequest:request error:&error];
// Handle error.

[request release];
于 2012-05-14T13:03:40.740 回答
0

感谢您的回答。我会试试你的方法。

我自己找到了这个解决方案,有什么担心吗?

NSTimeInterval aktuellesDatumInSekunden = [aktuellesDatum timeIntervalSinceReferenceDate];
    NSTimeInterval vordreissigTagen = [letztedreizigTage timeIntervalSinceReferenceDate];

    double dBoluse = 0;
    double dWerteKleinerSechzig = 0; 

    for (TblBolusWerte *ausgabeBoliTag in statistikDataWithPredicate){
        NSTimeInterval DatumAusDB = [ausgabeBoliTag.creationTime timeIntervalSinceReferenceDate];


        if (DatumAusDB >= vordreissigTagen && DatumAusDB <= aktuellesDatumInSekunden){
于 2012-05-17T08:34:08.913 回答