Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4111152
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T22:01:47+00:00 2026-05-20T22:01:47+00:00

I know that there is a data type called NSTimeInterval , but this is

  • 0

I know that there is a data type called NSTimeInterval, but this is in seconds. I want to have an object representation that would be able to represent a time range, say Thursday 21 June 8:00 – Thursday 21 June 9:00. Later on I want to compare the current date/time and check whether it fits within this range. What is the best way to do this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T22:01:47+00:00Added an answer on May 20, 2026 at 10:01 pm

    I would suggest using two NSDate objects to store the start and end dates. You can easily determine if a date is between them using the timeIntervalSinceDate: method:

    - (BOOL)dateInInterval:(NSDate *)testDate {
        // date1 is the instance variable containing the starting date
        // date2 is the instance variable containing the ending date
        return ([testDate timeIntervalSinceDate:date1] > 0 &&
                [testDate timeIntervalSinceDate:date2] < 0);
    }
    

    You just need to make a class which holds two NSDate objects, making sure the first is before the second, and including this method.

    FYI, NSTimeInterval is not a class, its a typedef of double.

    Edit

    Since you want use these as keys for a dictionary, you could use something similar to this to store and search your data:

    @protocol IntervalDictionaryKey <NSObject>
    // The class you use as keys for your dictionary must implement this method to determine if a object is in the interval
    - (BOOL)intervalContains:(id)object;
    @end
    @interface IntervalDictionary : NSObject {
        NSMutableArray *keys, *values;
    }
    - (void)addInterval:(id<IntervalDictionaryKey>)interval withObject:(id)object;
    - (void)setObject:(id)object forIntervalOf:(id)intervalObject;
    - (id)objectForIntervalOf:(id)object;
    @end
    
    
    @implementation IntervalDictionary
    - (id)init {
        if(self = [super init]) {
            keys = [NSMutableArray new];
            values = [NSMutableArray new];
        }
        return self;
    }
    - (void)dealloc {
        [keys release];
        [values release];
        [super dealloc];
    }
    - (void)addInterval:(id<IntervalDictionaryKey>)interval withObject:(id)object {
        [keys addObject:interval];
        [values addObject:object];
    }
    - (void)setObject:(id)object forIntervalOf:(id)intervalObject {
        id<IntervalDictionaryKey> key;
        NSUInteger i = 0;
        for(key in keys) {
            if([key intervalContains:intervalObject]) {
                [values replaceObjectAtIndex:i withObject:object];
                break;
            }
            ++i;
        }
    }
    - (id)objectForIntervalOf:(id)object {
        id<IntervalDictionaryKey> key;
        NSUInteger i = 0;
        for(key in keys) {
            if([key intervalContains:object]) {
                return [values objectAtIndex:i];
            }
            ++i;
        }
    }
    @end
    

    Usage:

    Example interval class:

    @interface DateInterval : NSObject <IntervalDictionaryKey> {
        NSDate *date1, *date2;
    }
    - (BOOL)intervalContains:(NSDate *)date; // this is the same as the dateInInterval method above
    @end
    @implementation DateInterval
    // initializer which sets date1 and date2
    - (BOOL)intervalContains:(NSDate *)date {
        return ([date timeIntervalSinceDate:date1] > 0 &&
                [date timeIntervalSinceDate:date2] < 0);
    }
    @end
    

    Example usage code:

    //intervalX is a DateInterval object, created elsewhere
    //objectX is any object, created elsewhere
    //objectInX is a NSDate which is part of intervalX, created elsewhere
    IntervalDictionary *dict = [IntervalDictionary new];
    [dict addInterval:interval0 withObject:object0];
    [dict addInterval:interval1 withObject:object1];
    [dict objectForIntervalOf:objectIn0]; // returns object0
    [dict objectForIntervalOf:objectIn1]; // returns object1
    [dict setObject:object2 forIntervalOf:objectIn1]; // changes the object for interval1 to object2
    [dict objectForIntervalOf:objectIn1]; // now returns object2
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know that this is somewhat subjective, but I wonder if there is a
I know that -applicationWillResignActive gets called upon an incoming call, but is there a
I understand that there's no String data type in C. What I want to
I have the following method, and I want to know if there is anything
I was wondering, why can't there be a void data type that is not
I know that there is no way to fully protect our code. I also
I know that there are many free and not so free compression libraries out
I know that you can insert multiple rows at once, is there a way
I know that ES_NUMBER exists to limit CreateWindowEx to numeric input only, is there
Recently I heard that there are 9 rules for OOP(Java). I know only four

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.