[問題]判別式問題 已回收
我的這個程式
是輸入 開始的 年 月 日 時 分
跟輸入 結束的 年 月 日 時 分
然後先在COMMAND WINDOW那邊
輸出 這段時間的 每一個 年月日時分秒
可是我的分那個地方的判別式怪怪的
明明就設定 分等於 60 的時候要進位
可是 就是不會進位
學長說可能是邏輯重複到
可是 我看不出來哪裡有重複到阿~
拜託各位前輩 幫我看一下~
clear all;clc;
%fid11=fopen('res_ult2','w');
a = input('起始的西元年 ');b = input('起始的月 ');c = input('起始的日 ');
d = input('起始的時 ');e = input('起始的分 ');
x = input('結束的西元年 ');y = input('結束的月 ');z = input('結束的日 ');
p = input('結束的時 ');q = input('結束的分 ');
onoff=0;
start=[a b c d e];
stop=[x y z p q];
while onoff==0
if start(5)>59 % 判斷分等於60的時候要進位
start(4)=start(4)+1 ; start(5)=0;
end
if start(4)==24 % 判斷時等於24的時候要進位
start(3)=start(3)+1 ; start(4)=0;
end
if mod(start(1),100)==0 & mod(start(1),400)==0 & start(2)==2 & start(3)==30
start(3)=1 ; start(2)=start(2)+1;
end
if start(2)==2 & start(3)==29 % 判斷非閏年二月只有二十八天
start(3)=1 ; start(2)=start(2)+1;
end
if start(2)==1 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==3 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==5 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==7 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==8 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==10 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==12 & start(3)==32
start(2)=start(2)+1; start(3)=1;start(4)=0;
end
if start(2)==4 & start(3)==31
start(2)=start(2)+1;start(3)=1 ;start(4)=0;
end
if start(2)==6 & start(3)==31
start(2)=start(2)+1;start(3)=1 ;start(4)=0;
end
if start(2)==9 & start(3)==31
start(2)=start(2)+1;start(3)=1 ;start(4)=0;
end
if start(2)==11 & start(3)==31
start(2)=start(2)+1;start(3)=1 ;start(4)=0;
end
if start(2)==13 %判斷月等於13的時候要進位
start(1)=start(1)+1 ; start(2)=1 ;
end
if start(1)==stop(1) & start(2)==stop(2) & start(3)==stop(3) &
start(4)==stop(4) & start(5)==stop(5) ;
stop
onoff = 1;
end
start(5) = start(5)+1;
start
%fprintf(fid11,'%4i\t%2i\t%2i\t%2i\t%2i\n',start(1:5))
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.98.208
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章