Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!uunet!mcsun!news.funet.fi!hydra!klaava!wirzeniu From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius) Newsgroups: comp.lang.c Subject: Re: time functions Message-ID: <1991Jun12.122632.4639@klaava.Helsinki.FI> Date: 12 Jun 91 12:26:32 GMT References: <6583@graphite14.UUCP> Distribution: comp Organization: University of Helsinki Lines: 52 In article <6583@graphite14.UUCP> johnsonl@motcid.UUCP (Lisa A. Johnson) writes: >I'm trying to write a program that finds the local time using the >functions in time.h. I don't care about the date, I just want the >time, but I can't figure out how to do it. Can anyone out there >help? Which functions do I have to use, and what kind of variables >do I need? The first thing you need to know is that there are two ways to represent the time in the standard C library. The first one uses a type called type_t (often long, but don't count on it; however, you may have to use long on some old Unix systems). This is a typedef for some integer type, and holds the time encoded in some suitable way. You can get the current date and time as a time_t object with the function time, for example: time_t now; time(&now); time_t alone is more or less useless, it cannot be used for nearly anything. For further processing it needs to be converted to the other kind of representation, a struct tm. The conversion is done with the function localtime, for example: time_t now; struct tm *now_tm; time(&now); now_tm = localtime(&now); A struct tm has (at least) the following fields: tm_year year tm_mon month tm_mday day of the month tm_wday day of the week tm_hour hour of the day tm_min minutes past full hour tm_sec seconds past full minute The last three are what you are searching for, I think. Note that the localtime function returns a pointer to an internal struct tm, and that the next call to localtime will overwrite this buffer. You need to copy it to a safe place if you are going to need the data later. There are also a number of other functions that may come in handy, these include asctime, ctime, gmtime, and mktime. They should be covered in any decent manual. -- Lars Wirzenius wirzeniu@cc.helsinki.fi