Adding hours to time

9 vues (au cours des 30 derniers jours)
Kwan Zhao Jie
Kwan Zhao Jie le 17 Avr 2018
Commenté : Kwan Zhao Jie le 17 Avr 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.

Réponse acceptée

Walter Roberson
Walter Roberson le 17 Avr 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')
  1 commentaire
Kwan Zhao Jie
Kwan Zhao Jie le 17 Avr 2018
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Develop Apps Using App Designer dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by