Pascal 弗里帕斯卡闰年

Pascal 弗里帕斯卡闰年,pascal,freepascal,leap-year,Pascal,Freepascal,Leap Year,投入年 产出——是否为闰年 我试过了 Program LeapYear; var Year:Integer begin writeln('Insert year'); readln(Year) if Year MOD 4 = 0 and Year MOD 100 = 0 and not Year MOD 400 = 0 then begin writeln(Year,'is leap year')

投入年

产出——是否为闰年

我试过了

Program LeapYear;

var  
    Year:Integer

begin

    writeln('Insert year');
    readln(Year)

    if Year MOD 4 = 0 and Year MOD 100 = 0 and not Year MOD 400 = 0 then
        begin
            writeln(Year,'is leap year')
        end
    else
        begin
            writeln(Year,'is not leap year')
        end

end.

但这不起作用

您的算法是错误的。应该是:

if (year mod 400 = 0) or ((year mod 4 = 0) and not (year mod 100 = 0))

你的算法错了。应该是:

if (year mod 400 = 0) or ((year mod 4 = 0) and not (year mod 100 = 0))
该函数已在datih.inc文件中定义,因此您无需编写自己的版本,只需添加sysutils单元。

该函数已在datih.inc文件中定义,因此您无需编写自己的版本,只需添加sysutils单元。

希望有帮助:

if((a MOD 4) = 0) and ((a MOD 100) = 0) and ((a MOD 400) = 0) then y:=true 
else y:=false;
希望有帮助:

if((a MOD 4) = 0) and ((a MOD 100) = 0) and ((a MOD 400) = 0) then y:=true 
else y:=false;
计划年

使用阴极射线管

年份:整数

结束。

年度计划

使用阴极射线管

年份:整数


结束。

Grmpf。你能把它格式化成代码吗?在代码块开头使用换行符,然后在ech代码行前面使用4个空格,然后正确缩进GRMPF。你能把它格式化成代码吗?在代码块开始处使用换行符,然后在ech代码行前面使用4个空格,然后正确缩进。当我运行程序时,它会给我错误:不兼容类型:获得布尔值预期长度。我添加了一些括号。再试一次?当我运行程序时,它会给我错误:不兼容类型:得到布尔值预期长度。我添加了一些括号。再试一次?但它被声明为word,因此在未来数年内都不起作用。或者负年份。@BeniBela,你认为你需要确定65536年之后的年份是否是闰年:-?[+1]@TLama:是的,最迟在63524年后。。。我需要知道负的年份,所以我实际上用整数闰年重写了所有的日期/时间函数,这很重要,如果你不知道闰年,你不能做任何日期计算,但它被声明为word,所以在未来的几年内它都不起作用。或者负年份。@BeniBela,你认为你需要确定65536年之后的年份是否是闰年:-?[+1]@TLama:是的,最迟在63524年后。。。我需要知道负年份,所以我实际上用整数闰年重写了所有的日期/时间函数。如果你不知道闰年,你不能进行任何日期计算。不正确,例如1900和2100不是闰年。不正确,例如1900和2100不是闰年。