Adding hours to time

7 views (last 30 days)
Kwan Zhao Jie
Kwan Zhao Jie on 17 Apr 2018
Commented: Kwan Zhao Jie on 17 Apr 2018
In my code, i want to state the current time and the time 8 hours later.
function pushbutton8_Callback(hObject, eventdata, handles)
t1 = datestr(now,'HH:MM Am')
t2 = datestr(now,'HH:MM Am') + 8
set(handles.Impt, 'String', sprintf('Your Working Hours will be from %s - %s\n', t1, t2));
the time that is shown in T1 is correct, however im unable to get the T2 value that i wanted. Im currently using MATLAB R2013B.

Accepted Answer

Walter Roberson
Walter Roberson on 17 Apr 2018

datestr() returns a character vector. When you add 8 to it, you are taking the encoding of each character and adding 8 to that '0' becomes 56 ('8'), '1' becomes 57 ('9'), '2' becomes 58 (':'), '3' becomes 59 (';'), ... '9' becomes 65 ('A'), ':' becomes 66 ('B')..

If you want to add 8 hours:

datestr(addtodate(datenum(t1),8,'h'),'HH:MM Am')

You should also consider using datevec instead:

datestr(datevec(t1) + [0 0 0 8 0 0], 'HH:MM Am')

More Answers (0)

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!