Days between dates: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
(Add Commodore BASIC) |
||
Line 650: | Line 650: | ||
07267 |
07267 |
||
07267</pre> |
07267</pre> |
||
=={{header|Commodore BASIC}}== |
|||
<lang GWBasic> |
|||
100 REM =============================== |
|||
110 REM DAYS BETWEEN 2 DATES |
|||
120 REM |
|||
130 REM CONVERT FROM TEXT TO PRG |
|||
140 REM USING C64LIST.EXE V3.5 |
|||
150 REM COMMAND LINE UTILITY ON WINDOWS |
|||
160 REM |
|||
170 REM V1, 2021-10-09, ALVALONGO |
|||
180 REM =============================== |
|||
190 REM |
|||
200 REM INSPIRED BY THE PYTHON VERSION |
|||
210 REM OF THE ALGORITHM |
|||
220 REM AND THE DISCUSSION AT |
|||
230 REM HTTPS://STACKOVERFLOW.COM/QUESTIONS/12862226 |
|||
240 REM /THE-IMPLEMENTATION-OF-CALCULATING-THE-NUMBER-OF-DAYS-BETWEEN-2-DATES |
|||
250 REM =============================== |
|||
260 : |
|||
1000 REM INIT ============================ |
|||
1010 PRINT CHR$(147);:REM CLEAR SCREEN |
|||
1020 PRINT CHR$(5);:REM INK WHITE COLOR |
|||
1030 POKE 53280,3:REM BORDER COLOR CYAN |
|||
1040 POKE 53281,14:REM BACKGROUND COLOR BLUE |
|||
1050 : |
|||
1100 REM MAIN ========================== |
|||
1110 PRINT " DAYS BETWEEN 2 DATES" |
|||
1120 PRINT |
|||
1130 INPUT "FIRST DATE, YEAR";Y1 |
|||
1140 INPUT "MONTH=";M1 |
|||
1150 INPUT "DAY =";D1 |
|||
1160 INPUT "SECOND DATE, YEAR";Y2 |
|||
1170 INPUT "MONTH=";M2 |
|||
1180 INPUT "DAY =";D2 |
|||
1190 Y=Y1:M=M1:D=D1:GOSUB 9000:G1=G |
|||
1200 Y=Y2:M=M2:D=D2:GOSUB 9000:G2=G |
|||
1210 DI=ABS(G2-G1) |
|||
1220 PRINT "DAYS=";DI |
|||
1230 GET K$:IF K$="" THEN 1230 |
|||
1240 PRINT |
|||
1250 GOTO 1120 |
|||
1260 END |
|||
1270 : |
|||
9000 REM GREGORIAN ====================== |
|||
9010 REM TRANSFORM A DATE INTO A DAY NUMBER IN THE GREGORIAN CALENDAR |
|||
9020 REM INPUT PARAMETERS: Y IS YEAR |
|||
9030 REM M IS MONTH |
|||
9040 REM D IS DAY |
|||
9050 N=(M+9)-INT((M+9)/12)*12 |
|||
9060 W=Y-INT(N/10) |
|||
9070 G=365*W+INT(W/4)-INT(W/100)+INT(W/400) |
|||
9080 G=G+INT((N*306+5)/10)+(D-1) |
|||
9090 RETURN |
|||
</lang> |
|||
=={{header|D}}== |
=={{header|D}}== |