MATLAB Answers

How to calculate (hh:mm:ss + minutes()) and show the all result in GUI table?

2 views (last 30 days)
snr matlb
snr matlb on 2 Jan 2020
Commented: snr matlb on 2 Jan 2020
for i = 1:10
result(i, 2) = 08:00:00 + minutes(result(i,2))
end
set(handles.uitable1, 'data', result)
**************************************************************
Then, I will show result which is global variable into GUI table. How can I calculate and show it in GUI table?
Normally, I use minutes to calculate but I want to show the exact time (hh:m:ss) in GUI table. I, now, show the minutes at GUI table as below. Below figure shows result at GUI table. I need to convert it to hh:mm:ss with above for-loop.
Ekran Alıntısı.PNG
Thanks,

  4 Comments

Show 1 older comment
snr matlb
snr matlb on 2 Jan 2020
Thank you for the reply. After I apply it, I get this error:
The following error occurred converting from duration to double:
Undefined function 'double' for input arguments of type 'duration'. To convert from durations to numeric, use the SECONDS, MINUTES, HOURS, DAYS, or YEARS functions.
Error in Optprog>pushbutton4_Callback (line 290)
result(i,2) = duration('08:00:00') + minutes(result(i,2))
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in Optprog (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)Optprog('pushbutton4_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback.
snr matlb
snr matlb on 2 Jan 2020
I tried as this way:
result(i,2) = hours(duration('08:00:00') + result(i,2))
However, by making hand-calculation, I get 60 as minute, then I adding it to the 08:00:00 and I find it as 09:00:00.
with above code, I get 1448 at GUI table instead of 09:00:00 in hh:mm:ss format.

Sign in to comment.

Answers (1)

Amit
Amit on 2 Jan 2020
Use clock function to display current time on your gui :
I hope the below code will help you.
for i =1:10
time= clock;
if time(4)>12
hr = time(4)-12;
result(i,:)= [hr, time(5:6)];
else
result(i,:) = time(4:6);
end
pause(1)
set(handles.uitable1, 'data', ceil(result))
end

  1 Comment

snr matlb
snr matlb on 2 Jan 2020
I need to use codes below to calculate the time and show in matlab GUI table.
for i = 1:10
result(i, 2) = duration('8:00:00') + minutes(result(i,2))
end
set(handles.uitable1, 'data', result)
for example; while i=1, result (i,2) = 72 then
I want to see at GUI table: duration('08:00:00') + minute(72) = 09:12:00.
But I get error as I mentioned above.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!