How to get system time and display in C language

Source

In this tutorial I thought of giving you something new than regular C programming tutorial. So I decided to write article on displaying system time in C program. To understand this program you should have knowledge of structure, library function, header file and of course main function.

So what we are going to do to display current system time? We will use C program library function to get system time and using time structure we will display that time. Let’s see our logic in real code.

Code to get time in C

#include<conio.h>
#include<stdio.h>
#include<dos.h>

int main()
{
struct time t;
clrscr();
_setcursortype(_NOCURSOR);
while(!kbhit())
{
	gettime(&t);
	gotoxy(3,3);
	printf("Time : %02d:%02d:%02d:%d",t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);
}
return 0;
}
Source

Above is example of C Program which displays current system time and this is not a static clock program (I mean you don’t need to run every time to see updated clock time, it will keep refreshing time). It’s dynamic clock and will keep it updated (synchronized) with system time.

Let’s see how we did this. To get system time we need time structure and this structure is part of C library. You can see time structure information in below C code block.

struct time in C

struct time {
  unsigned char  ti_min;   /* minutes */
  unsigned char  ti_hour;  /* hours */
  unsigned char  ti_hund;  /* hundredths of seconds */
  unsigned char  ti_sec;   /* seconds */
};

So we declared structure variable of “time” as “t” in line no 7 and we used this variable in line no 12. In line no 12 we are calling function “gettime()” and passing address of “t” as parameter or argument. The “getime()” function is part of header file “DOS.H” and it is included in line no 3. The “gettime()” function retrieves current system time and stores that information in time structure “t”. Time structure has four variables to store time information which you can see in above code block. Now we will display that information on screen (see line no. 14).

Apart from this, there are few other interesting codes in above C program. We will start with line no. 9, this line of code (“_setcursortype(_NOCURSOR)”) hides blinking cursor from screen. It’s not required for this C clock program but output will look good, you can comment this line and check the output.

Next in while loop we have condition “!kbhit()” function. This function returns non-zero (-1) value when you press any key on keyboard and returns zero if you don’t press any key. But what is the use of this function, as I told you earlier also that our clock is dynamic clock and it will keep updating itself if it is running. To achieve this, I implemented logic that we will keep our clock updating until user hits any key on keyboard, till then while loop will work as infinite loop and it will update our clock. As I told you “kbhit()” function returns zero (0) if no key is pressed on keyboard, that’s why I am applying NOT(!) operator to make it one (1) and one means true and if condition is true then loop will keep executing. But when user presses any key then it will convert that non-zero value to zero and zero means false. So loop will stop executing the code. This is how that “!kbhit()” logic works.

I think code written on line no 14 is also new to you so let me explain that also. The “gotoxy()”function is used to position the cursor on text window (output screen). It takes two integer type parameters for “x” and “y” coordinates. I have given 3 for both parameters that mean set cursor position from upper-left corner (which is equal to gotoxy(1,1)) of the window to 3 character space right and 3 character space down.

If you like it then don’t forget to share with your friends, thank you. Happy coding :)

Your opinion

Was this an interesting C language tutorial?

See results without voting

More by this Author


Comments

No comments yet.

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working