How to Write a C++ Program to Simulate a Digital Clock

Written by amber d. walker
  • Share
  • Tweet
  • Share
  • Email

The standard C++ library includes a number of functions and structures to assist programmers in dealing with time in their applications. In this tutorial you will create a C++ class called Clock that will serve as a simple wrapper around the time_t and tm structures used by C's time library, and include a simple sample program that will use this Clock class to output the system time to the console.

Skill level:

Things you need

  • C++ Compiler
  • C++ Standard Library
  • Text editor or C++ IDE

Show MoreHide


  1. 1

    Create your files. This program will call for three files: a clock.h header file to define the Clock class, a clock.cpp C++ source file to define the implementation of the Clock class, and finally a simple example program using this class in main.cpp.

  2. 2

    Define the Clock class. Open the clock.h header file and define the structure of the Clock class by entering the following code into it.

    ifndef _CLOCK_H

    define _CLOCK_H

    class Clock { public: int get Hours(); int get Minutes(); int get Seconds();

    std::string get Time();

    Clock(); private: };

    endif / _CLOCK_H /

    The class has been defined as having four major functions (besides the constructor Clock()). The get Hours, get Minutes, and get Seconds functions will each retrieve a different part of the time from the C++ standard time library, using the current system time as its guide. The get Time() function will format these into a standard HH:MM:SS string, as you are used to seeing on digital clocks.

    The ifndef, define, and endif tags are optional; however, it is a good practice to get into using these. When building larger projects, including these tags will ensure that a given header file is loaded into memory only once. This reduces the risk of circular dependency errors, and making a habit of always including them in new header files now will save you many headaches later on down the road.

  3. 3

    Implement the Clock class. Open your clock.cpp file, and implement all the functions you've defined in your header file by entering the following:

    include <time.h>

    include <sstream>

    include "clock.h"

    Clock::Clock() { }

    int Clock::get Hours() { time_t seconds = time(NULL); struct tm *timeinfo = localtime(&seconds); return timeinfo->tm_hour; }

    int Clock::get Minutes() { time_t seconds = time(NULL); struct tm *timeinfo = localtime(&seconds); return timeinfo->tm_min;


    int Clock::get Seconds() { time_t seconds = time(NULL); struct tm *timeinfo = localtime(&seconds); return timeinfo->tm_sec;


    std::string Clock::get Time() { std::string time; std::stringstream out; out << get Hours(); time = out.str(); out.str(""); time += ":"; out << get Minutes(); time += out.str(); out.str(""); time += ":"; out << get Seconds(); time += out.str(); return time; }

    Starting at the top is the constructor, Clock(). This is a very simple class, so there is no need to do anything special here, so the constructor is left empty.

    Next are the get Hours, minutes, and seconds functions. These functions retrieve the local time, measured in seconds, GMT, since January of 1970 on most computers, converts it into the tm structure provided by the C++ libraries, and finally retrieves the hours, minutes, and seconds out of this value in a human-readable form.

    Finally, get Time puts these values together in a string with the common format which separates hours, minutes and seconds by colons.

  4. 4

    Create a simple program to use it. Open your main.cpp file and write the following program into it.

    include <iostream>

    include "clock.h"

    int main (int argc, char * const argv[]) { Clock *clock = new Clock(); std::cout << clock->getTime(); return 0; }

    This very simple program creates a new clock object, gets the current system time from it, and outputs it to the standard out. Finally it returns 0 to the operating system, to inform the operating system that the program ran successfully with no errors.

Don't Miss

  • All types
  • Articles
  • Slideshows
  • Videos
  • Most relevant
  • Most popular
  • Most recent

No articles available

No slideshows available

No videos available

By using the site, you consent to the use of cookies. For more information, please see our Cookie policy.