在 Turbo Pascal 中计算下一个日期
program date;
uses wincrt;
var
m,ch,ch1,ch2,ch3: string ;
mois,j,a,b: integer ;
begin
write('a');read(a);
write('j');read(j);
write('mois');read(mois);
case mois of
1,3,5,7,8,10: if j<31 then
begin
b:=j+1;
m:=str(b,ch)+'/'+str(mois,ch2)+'/'+str(a,ch3);
else if j=31then
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(s,ch2),'/',str(a,ch3));
end
else m:='erreur';
4,6,9,11:if j<30 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else j=30 then
begin
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else m:='erreur';
2:if j<28 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else if j=28 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if((a mod 4=0)AND (a mod 100<>0)) or ((a mod 100=0)and(a mod 400=0)) then
if j<29 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=29 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else m:='erreur';
12:if j<31 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=31 then
begin
b:=1;
s:=a+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(s,ch3));
end;
writeln(m);
end.
这是我的程序我希望你能帮助我
program date;
uses wincrt;
var
m,ch,ch1,ch2,ch3: string ;
mois,j,a,b: integer ;
begin
write('a');read(a);
write('j');read(j);
write('mois');read(mois);
case mois of
1,3,5,7,8,10: if j<31 then
begin
b:=j+1;
m:=str(b,ch)+'/'+str(mois,ch2)+'/'+str(a,ch3);
else if j=31then
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(s,ch2),'/',str(a,ch3));
end
else m:='erreur';
4,6,9,11:if j<30 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else j=30 then
begin
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else m:='erreur';
2:if j<28 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else if j=28 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if((a mod 4=0)AND (a mod 100<>0)) or ((a mod 100=0)and(a mod 400=0)) then
if j<29 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=29 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else m:='erreur';
12:if j<31 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=31 then
begin
b:=1;
s:=a+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(s,ch3));
end;
writeln(m);
end.
this is my program i hope you be able to help me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据开始/结束块缩进代码可能是个好主意。这使得很容易发现不成对的开始/结束语句。
我已经很久没有用 Turbo Pascal 做过一些事情了,但如果我没记错的话,str 是一个过程。所以它不会返回任何东西。
为了简化您的程序,仅计算 case 块内的新变量“b”、“mois”和“a”可能是一个好主意。然后在 case 块之后对字符串进行一次转换。
It may be a good idea to indent the code according to the begin/end-blocks. This make it very easy to spot unpaired begin/end statements.
It is a long time since i did something with Turbo Pascal, but if i remember correctly, str is a procedure. So it does not return anything.
In order to simplify your program, it may be a good idea, to only calculate the new variables "b", "mois" and "a" inside the case block. And then do the transformation to a string once after the case-block.