Solved

SIMPLE: time variable?

Posted on 2002-04-18
5
231 Views
Last Modified: 2010-04-02
is there a variable or structure that I could use to hold a simulated time? I'm working on a simulation program and I need to handle time. I'm looking for a way to increment the time in minutes and have it roll over to hours.

So if i incremented a time variable by 30 minutes 3 times. It could from 12:00 to 1:30. Can someone tell me how to do this thanks.
0
Comment
Question by:llllllllll
  • 3
  • 2
5 Comments
 
LVL 1

Expert Comment

by:lsmgms
Comment Utility
Hi,

How about this:
  struct tm
  time_t mktime( struct tm *timeptr );



Example quoted from MSDN:

/* MKTIME.C: The example takes a number of days
 * as input and returns the time, the current
 * date, and the specified number of days.
 */

#include <time.h>
#include <stdio.h>

void main( void )
{
   struct tm when;
   time_t now, result;
   int    days;

   time( &now );
   when = *localtime( &now );
   printf( "Current time is %s\n", asctime( &when ) );
   printf( "How many days to look ahead: " );
   scanf( "%d", &days );

   when.tm_mday = when.tm_mday + days;
   if( (result = mktime( &when )) != (time_t)-1 )
      printf( "In %d days the time will be %s\n",
              days, asctime( &when ) );
   else
      perror( "mktime failed" );
}


Output

Current time is Tue May 03 12:45:47 1994

How many days to look ahead: 29
In 29 days the time will be Wed Jun 01 12:45:47 1994


Hope this will help.
0
 

Author Comment

by:llllllllll
Comment Utility
ok how would i set that to a specific time (instead of current time)
0
 
LVL 1

Expert Comment

by:lsmgms
Comment Utility
Using your example:
So if i incremented a time variable by 30 minutes 3 times. It could from 12:00 to 1:30.

#include <time.h>
#include <stdio.h>
void main(void)
{
  struct tm when;
  time_t now, result;

     /* simply initialize to localtime */
  time( &now );
  when = *localtime( &now );

     /* set your time now, assume you do not need day info */
     when.tm_hour = 12;
     when.tm_min = 0;
     when.tm_sec = 0;
     
     printf("Org time %02d:%02d;%02d\n", when.tm_hour, when.tm_min, when.tm_sec);

     /* add 30 * 3 min */
     when.tm_min = 90;
  if( (result = mktime( &when )) != (time_t)-1 )
          printf("New time %02d:%02d;%02d\n", when.tm_hour, when.tm_min, when.tm_sec);

     /* output */
     /*
          Org time 12:00;00
          New time 13:30;00
     */


}



0
 

Author Comment

by:llllllllll
Comment Utility
can i do that on 12 hour time?
0
 
LVL 1

Accepted Solution

by:
lsmgms earned 100 total points
Comment Utility
There is not different for the data stored in the structure.  It is how you present your data.  Example, bu changing the code from:
if( (result = mktime( &when )) != (time_t)-1 )
         printf("New time %02d:%02d;%02d\n", when.tm_hour, when.tm_min, when.tm_sec);


to
  if( (result = mktime( &when )) != (time_t)-1 )
          printf("New time %02d:%02d:%02d %s\n",
          (when.tm_hour>12 ? when.tm_hour-12: when.tm_hour),
          when.tm_min,
          when.tm_sec,
          (when.tm_hour>12 ? "pm": "am"));

-->New time 01:30:00 pm

You will get your "12 hour time"


0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now