If you save off a starting time object you could use NSDateComponents.


NSDate *startDate = /* set at beginning */
NSCalendar *cal = [NSCalendar currentCalendar];
NSCalendarUnit units = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents *comps = [cal components:units fromDate:startDate toDate:[NSDate date] options:0];

The resulting comps object will respond to -hour, -minute and -second messages.


Ashley

On Dec 10, 2008, at 6:03 PM, Chunk 1978 wrote:

i believe i painted myself into a corner here... i have a
NSPopUpButton with 3 items.  1 Hour, 2 Hours, 3 Hours.  each item has
respected tag numbers 1, 2 and 3.  i'm attempting to print out time
remaining but i can only get as far as displaying seconds remaining
with this:  NSLog(@"%.2d Seconds Remaining", (hoursSelected -
second));  but i would like for the log to output @"%.2d Hours, %.2d
Minutes and %2d Seconds Remaining";  i can't wrap my head around it,
and i fear that my trying to be as if/else statementless as possible
by using the tag numbers of the PopUp Menu is causing me problems.

-=-=-=-=-

-(int)timeMenuSelection
        {
        return [[menu selectedItem] tag];
        }

- (IBAction)startTimer:(id)sender
        {
        startTime = [NSDate timeIntervalSinceReferenceDate];
        
        [killTimer invalidate];
        [killTimer release];
        killTimer = nil;
        
        killTimer = [[NSTimer scheduledTimerWithTimeInterval:1 target:self
selector:@selector(updateTime:) userInfo:nil repeats:YES] retain];
        }

- (void)updateTime:(NSTimer *)theTimer
        {
        NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
        NSTimeInterval interval = now - startTime;
        int second = (int)interval;

        //Tag #1 x 3600 Seconds = 3600 Seconds = 2 Hours.
        //Tag #2 x 3600 Seconds = 7200 Seconds = 2 Hours.
        //Tag #3 x 3600 Seconds = 10800 Seconds = 3 Hours.

        int hoursSelected = ([self timeMenuSelection] * 3600);
        
        if (second <= hoursSelected)
                {
                NSLog(@"%.2d Seconds Remaining", (hoursSelected - second));
                }
                else
                {
                NSLog(@"TIME'S UP!");
                [killTimer invalidate];
                [killTimer release];
                killTimer = nil;
                }
        }

-=-=-=-=-
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/aclark%40ghoti.org

This email sent to [EMAIL PROTECTED]


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to