How to add hours to current time in C++

This tutorial will teach how to add hours to current time in C++.

What we need to do is to first, get the current time (using inbuilt functions ) and then add the number of hours which we take input from the user or mention in the main function.

adding hours to the current time in C++

time_t is an arithmetic datatype. It stores system time.

ctime() function:

It is included in the header file <ctime>. Basically what it does is performs both the functions task asctime() and localtime().

asctime() makes the time converted to a format understandable by the user and localtime() makes or checks for the particular time zone according to which time needs to be found.

The ctime() function takes a pointer to time_t object as its parameter and it gives output in the format:

day month date hh:mm:ss year

the day and month are outputted in a three-character format.

Also check: localtime() function in C++ with an example

Then next we have to add hours to the time that we get using time()  This we do by using a user-defined function.

add_hours() is a function that takes input as a string of time and operates on it.We get substring containing time using {string_name.substring() }and covert to integer.

After that, we will perform regular addition for adding hours.

Code Snippet:

void add_hours(string s,int h)
{
string hh1,mm1,ss1;
int HH;
hh1=s.substr(11,2)+"";
mm1=s.substr(14,2)+"";
ss1=s.substr(17,2)+"";
//stringstream is used to convert a string to integer data type
stringstream str1(hh1);
int hh=0;
str1>>hh;
stringstream str2(mm1);
int mm=0;
str2>>mm;
stringstream str3(ss1);
int ss=0;
str3>>ss;
cout<<hh<<" "<<mm<<" "<<ss<<endl;
//add time and hours*/
	ss=ss;
	mm=mm+(ss/60);
	HH=hh+h+(mm/60);
	mm=mm%60;	//leftover minutes
	ss=ss%60;	//leftover seconds
    cout<<HH<<":"<<mm<<":"<<ss;
}
#include<bits/stdc++.h>
 #include <ctime>
 #include<cstdio>
 #include<cstdlib>
 using namespace std;
 int main()
 { 
int h=3; 
string p; 
// we firstly declare the argument of time()
 time_t my_time = time(NULL); 
// we use the built in function named ctime() to give us the present time
 //and then print it on console 
p = ctime(&my_time); 
cout<<p;
 add_hours(p,h); 
return 0; 
}

 

Sample Output:

Sun Jun 23 18:04:05 2019
18 4 5
21 4 5

The full code:

#include<bits/stdc++.h>
 #include <ctime>
 #include<cstdio>
 #include<cstdlib>
 using namespace std;
void add_hours(string s,int h)
{
string hh1,mm1,ss1;
int HH;
hh1=s.substr(11,2)+"";
mm1=s.substr(14,2)+"";
ss1=s.substr(17,2)+"";
//stringstream is used to convert a string to integer data type
stringstream str1(hh1);
int hh=0;
str1>>hh;
stringstream str2(mm1);
int mm=0;
str2>>mm;
stringstream str3(ss1);
int ss=0;
str3>>ss;
cout<<hh<<" "<<mm<<" "<<ss<<endl;
//add time and hours*/
  ss=ss;
  mm=mm+(ss/60);
  HH=hh+h+(mm/60);
  mm=mm%60;  //leftover minutes
  ss=ss%60;  //leftover seconds
    cout<<HH<<":"<<mm<<":"<<ss;
}
 int main()
 { 
int h=3; 
string p; 
// we firstly declare the argument of time()
 time_t my_time = time(NULL); 
// we use the built in function named ctime() to give us the present time
 //and then print it on console 
p = ctime(&my_time); 
cout<<p;
 add_hours(p,h); 
return 0; 
}

 

Also read:

Leave a Reply

Your email address will not be published.