OPTION BASE 0 FUNCTION IsLeapYear(y) !うるう年の判定 LET IsLeapYear=0 IF (MOD(y,4)=0 AND MOD(y,100)<>0) OR MOD(y,400)=0 THEN LET IsLeapYear=1 END IF END FUNCTION FUNCTION Dy(q,w,e) DIM Month(12) LET Month(1)=0 LET Month(2)=31 LET Month(3)=28 LET Month(4)=31 LET Month(5)=30 LET Month(6)=31 LET Month(7)=30 LET Month(8)=31 LET Month(9)=31 LET Month(10)=30 LET Month(11)=31 LET Month(12)=30 LET k=0 IF q=1 THEN GOTO 10 FOR i=1 TO q-1 IF IsLeapYear(i)=0 THEN LET k=k+365 ELSE LET k=k+366 END IF NEXT i 10 LET z=0 FOR i=1 TO w LET z=z+Month(i) NEXT i LET h=0 IF IsLeapYear(q)=1 THEN IF w>2 THEN LET h=1 END IF END IF LET Dy=k+z+e+h END FUNCTION PRINT PRINT "西暦何日かを示します。また曜日も示します。" PRINT DIM Youbi$(7) DATA 日,月,火,水,木,金,土 FOR i=0 TO 6 READ Youbi$(i) NEXT i INPUT PROMPT " 年,月,日 ? ":y,m,d PRINT LET X=Dy(y,m,d) LET F=MOD(X,7) PRINT " その日は、西暦1年1月1日から"; PRINT X-1;"日後です。" PRINT "つまり、西暦";X;"日目 です。"; PRINT "そして、";Youbi$(F);"曜日 です。" END