Taking Time and Date from System in C

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Tameem

    #1

    Taking Time and Date from System in C

    i am a new C programmer. i want to calculate someone's age. my input
    would be his birth date. like : Date: 07
    Month: 12
    Year: 1988
    and the program will take the current date from system and calculate
    his age,
    how can i do that in C. please inform me.
  • Morris Dovey

    #2
    Re: Taking Time and Date from System in C

    Tameem wrote:
    i am a new C programmer. i want to calculate someone's age. my input
    would be his birth date. like : Date: 07
    Month: 12
    Year: 1988
    and the program will take the current date from system and calculate
    his age,
    how can i do that in C. please inform me.
    One way is to store those values into a struct tm and use mktime() to
    convert to a time_t value, then pass that value and the current time to
    difftime() to get the person's age in seconds. It's up to you to convert
    that to whatever units (years, months, lunar cycles, etc) you want.

    --
    Morris Dovey
    DeSoto Solar
    DeSoto, Iowa USA

    Comment

    • Walter Roberson

      #3
      Re: Taking Time and Date from System in C

      In article <56273875-c731-45b3-8ce5-6334c66dc96b@a2 3g2000hsc.googl egroups.com>,
      Tameem <etameem@gmail. comwrote:
      >i am a new C programmer. i want to calculate someone's age. my input
      >would be his birth date. like : Date: 07
      Month: 12
      Year: 1988
      >and the program will take the current date from system and calculate
      >his age,
      By the way, what do the specifications say should happen for
      people born on February 29th? And are the "lost days" to be
      taken into account (the various calendar reconciliations taken
      into account) ?
      --
      "The art of storytelling is reaching its end because the epic
      side of truth, wisdom, is dying out." -- Walter Benjamin

      Comment

      • Flash Gordon

        #4
        Re: Taking Time and Date from System in C

        Tameem wrote, On 09/05/08 19:59:
        i am a new C programmer. i want to calculate someone's age. my input
        would be his birth date. like : Date: 07
        Month: 12
        Year: 1988
        and the program will take the current date from system and calculate
        his age,
        how can i do that in C. please inform me.
        Provide a method for the user to provide input. My preference would be
        using the command line, but you might be required to send prompts to
        stdout and read input from stdin. Write some code to pass and validate
        the input. Write some code find out the current date. Write some code to
        find the difference between the two. C provides various library
        functions to assist in these tasks.

        If you are completely stuck then you should probably ask your tutor for
        extra help. Otherwise make an attempt and post it here.
        --
        Flash Gordon

        Comment

        • Tameem

          #5
          Re: Taking Time and Date from System in C

          please tell me the program codes to add current date on C.

          Comment

          • Morris Dovey

            #6
            Re: Taking Time and Date from System in C

            Tameem wrote:
            please tell me the program codes to add current date on C.
            You can get the current date/time (together in a single value) as a
            time_t by calling time().

            You can then (if you want, but not needed for this problem) convert that
            time_t to a struct tm using either localtime() or gmtime().

            You'll need to look up time_t, struct tm, and all of the functions I've
            mentioned to write your code. I won't write it for you, but if you have
            difficulty and are willing to show that you've made a serious attempt to
            produce the code, we'll help you debug it here.

            --
            Morris Dovey
            DeSoto Solar
            DeSoto, Iowa USA

            Comment

            • jacob navia

              #7
              Re: Taking Time and Date from System in C

              Tameem wrote:
              please tell me the program codes to add current date on C.
              /* LOCALTIM.C: This program uses time to get the current time
              * and then uses localtime to convert this time to a structure
              * representing the local time. The program converts the result
              * from a 24-hour clock to a 12-hour clock and determines the
              * proper extension (AM or PM).
              */

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

              int main( void )
              {
              struct tm *newtime;
              char am_pm[] = "AM";
              time_t long_time;

              time( &long_time ); /* Get time as long integer. */
              newtime = localtime( &long_time ); /* Convert to local time. */

              if( newtime->tm_hour 12 ) /* Set up extension. */
              strcpy( am_pm, "PM" );
              if( newtime->tm_hour 12 ) /* Convert from 24-hour */
              newtime->tm_hour -= 12; /* to 12-hour clock. */
              if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
              newtime->tm_hour = 12;

              printf( "%.19s %s\n", asctime( newtime ), am_pm );
              return 0;
              }



              --
              jacob navia
              jacob at jacob point remcomp point fr
              logiciels/informatique
              http://www.cs.virginia.edu/~lcc-win32

              Comment

              • Richard Heathfield

                #8
                Re: Taking Time and Date from System in C

                jacob navia said:
                Tameem wrote:
                >please tell me the program codes to add current date on C.
                >
                /* LOCALTIM.C: This program uses time to get the current time
                * and then uses localtime to convert this time to a structure
                * representing the local time. The program converts the result
                * from a 24-hour clock to a 12-hour clock and determines the
                * proper extension (AM or PM).
                */
                >
                #include <stdio.h>
                #include <string.h>
                #include <time.h>
                >
                int main( void )
                {
                struct tm *newtime;
                char am_pm[] = "AM";
                time_t long_time;
                >
                time( &long_time ); /* Get time as long integer. */
                newtime = localtime( &long_time ); /* Convert to local time. */
                >
                if( newtime->tm_hour 12 ) /* Set up extension. */
                strcpy( am_pm, "PM" );
                if( newtime->tm_hour 12 ) /* Convert from 24-hour */
                newtime->tm_hour -= 12; /* to 12-hour clock. */
                if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
                newtime->tm_hour = 12;
                >
                printf( "%.19s %s\n", asctime( newtime ), am_pm );
                return 0;
                }
                Conceptually simpler (and making it much easier to customise the format),
                but requiring an extra array:

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

                int main(void)
                {
                char thetime[32] = {0};
                time_t long_time = time(NULL);
                struct tm *newtime = localtime(&long _time);
                strftime(thetim e, sizeof thetime, "%Y-%m-%d %I:%M:%S%p", newtime);
                printf("%s\n", thetime);
                return 0;
                }

                --
                Richard Heathfield <http://www.cpax.org.uk >
                Email: -http://www. +rjh@
                Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
                "Usenet is a strange place" - dmr 29 July 1999

                Comment

                Working...