2013-12-09 29 views
0

我有這段代碼作爲我的程序計算太陽時間的一部分。但我的計算使用小數時間。現在,我需要在時鐘顯示結果。從matlab中的十進制時間顯示時鐘時間

%To calculate solar time 
stime = time + (((4*(Lloc-Lsm))+ Et)/60); 
disp(['The true solar time is ' num2str(stime),'hr']); %To display the solar time 

的答案是這樣的:

The true solar time is 13.0501hr 

我怎麼能轉換時間時鐘時間(12小時或24小時格式)。即分鐘應乘以60(0.0501 * 60min = 3.006),時間應顯示爲13:03或1:03 PM。

感謝您的幫助。謝謝。 問候,-researcher-

回答

1

使用datenum轉換爲日期以一串數字,然後datestr建立與適當的格式字符串:

h = 13.0501; %// your computed decimal time 
string = datestr(datenum([0 0 0 h 0 0]),14); %// or change "14" for other formats 

的您指定的兩種格式對應於datestr中的格式13至16(請參閱上述文檔的鏈接)。例如,格式爲14的字符串是

>> disp(string) 
1:03:00 PM 
2

您可以使用以下

my_hour = floor(stime); 
my_minute = round(mod(stime, 1) * 60); 

disp(['The true solar time is ', num2str(my_hour), ':', num2str(my_minute)]); 
相關問題