Created
July 3, 2010 15:53
-
-
Save brianpeiris/462651 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REM ######################################################################## | |
REM # 2010-07-03T15:52Z | |
REM # brianpeiris | |
REM # Andrew Lipsky's original code. From http://bit.ly/aPDYvN | |
REM # | |
REM # 2010-07-03T15:54Z | |
REM # brianpeiris | |
REM # Removed empty lines | |
REM ######################################################################## | |
5 CLS : CLEAR | |
10 PRINT "(1) Calculate Time Worked" | |
15 PRINT "(2) Calculate Earnings" | |
20 INPUT g | |
25 IF g = 1 THEN GOTO 40 | |
30 IF g = 2 THEN GOTO 1500 | |
35 GOTO 10 | |
37 CLEAR | |
40 INPUT "Enter Hours IN "; A | |
60 IF 1 > A OR A > 12 THEN GOTO 40 | |
65 INPUT "(a).m. or (p).m."; A$ | |
80 INPUT "Enter Minutes IN"; B | |
100 IF 0 > B OR B > 59 THEN GOTO 80 | |
120 PRINT " TIME IN"; A; ":"; B; A$ | |
140 INPUT "Enter Hours OUT"; C | |
160 IF 1 > C OR C > 12 THEN GOTO 140 | |
180 INPUT "(a).m. or (p).m."; P$ | |
190 IF (P$ <> A$ AND C <> 12 AND A = 12) OR (P$ = A$ AND A <> 12 AND C < A) THEN J = 2 | |
195 IF J = 2 THEN C = C + 24 | |
197 IF J = 2 THEN GOTO 220 | |
200 IF (P$ <> A$ AND C <> 12) OR (A = 12 AND C <> 12) OR (P$ <> A$ AND A = 12) OR (P$ = A$ AND A = 12 AND C < A) OR (P$ = A$ AND C = 12 AND C > A) THEN J = 1 | |
210 IF J = 1 THEN C = C + 12 | |
220 INPUT "Enter Minutes OUT"; D | |
240 IF 0 > D OR D > 59 THEN GOTO 220 | |
242 IF (P$ = A$ AND A = C AND B > D) THEN J = 2 | |
244 IF (P$ = A$ AND A = C AND B > D) THEN C = C + 24 | |
250 PRINT " TIME IN"; A; ":"; B; A$ | |
260 IF J = 2 THEN PRINT " TIME OUT"; C - 24; ":"; D; P$ | |
265 IF J = 2 THEN GOTO 280 | |
270 IF J = 1 THEN PRINT " TIME OUT"; C - 12; ":"; D; P$ ELSE PRINT " TIME OUT"; C; ":"; D; P$ | |
280 IF B = D THEN GOTO 520 | |
300 IF B > D THEN GOTO 420 | |
320 IF B < D THEN B1 = B1 + (D - B) | |
340 IF B < D THEN A1 = A1 + (C - A) | |
360 IF Z > 0 THEN GOTO 620 | |
370 PRINT " INTERVAL HOURS"; (C - A); ":"; (D - B) | |
380 PRINT " TOTAL HOURS WORKED"; A1; ":"; B1 | |
400 GOTO 760 | |
420 B1 = B1 + (60 - (B - D)) | |
440 A1 = A1 + ((C - 1) - A) | |
460 IF Z > 0 THEN GOTO 620 | |
470 PRINT " INTERVAL HOURS"; ((C - 1) - A); ":"; (60 - (B - D)) | |
480 PRINT " TOTAL HOURS WORKED"; A1; ":"; B1 | |
500 GOTO 760 | |
520 B1 = B1 + (B - D) | |
540 A1 = A1 + (C - A) | |
560 IF Z > 0 THEN GOTO 620 | |
570 PRINT " INTERVAL HOURS"; (C - A); ":"; (B - D) | |
580 PRINT " TOTAL HOURS WORKED"; A1; ":"; B1 | |
600 GOTO 760 | |
620 IF B1 = 60 THEN B1 = 0: A1 = A1 + 1 | |
640 IF B1 = 0 THEN GOTO 725 | |
660 IF B1 < 60 THEN GOTO 725 | |
680 IF B1 > 60 THEN E = (B1 / 60) | |
700 A1 = A1 + INT(E) | |
720 B1 = B1 - (INT(E) * 60) | |
725 IF B < D THEN PRINT " INTERVAL HOURS"; (C - A); ":"; (D - B) | |
730 IF B > D THEN PRINT " INTERVAL HOURS"; ((C - 1) - A); ":"; (60 - (B - D)) | |
735 IF B = D THEN PRINT " INTERVAL HOURS"; (C - A); ":"; (B - D) | |
740 PRINT " TOTAL HOURS WORKED"; A1; ":"; B1 | |
760 PRINT "(1) Another entry (2) Calculate earnings (3) Initial menu" | |
775 INPUT H | |
780 IF H = 1 THEN GOTO 820 | |
785 IF H = 2 THEN GOTO 940 | |
787 IF H = 3 THEN GOTO 1300 | |
790 GOTO 760 | |
820 Z = Z + 1 | |
830 J = 0 | |
840 GOTO 40 | |
940 INPUT "Enter Salary Per Hour?"; M | |
960 IF A1 >= 40 THEN X = A1 - 40 | |
970 IF A1 >= 40 THEN V = (M * 40) | |
980 IF A1 < 40 THEN V = (A1 * M) + ((CLNG(1000 * M * (B1 / 60))) / 1000) | |
1000 PRINT "Base Salary $"; V | |
1040 IF A1 >= 40 THEN PRINT "Overtime $"; (X * M * 1.5) + ((CLNG(1000 * 1.5 * M * (B1 / 60))) / 1000) | |
1060 W = (X * M * 1.5) + ((CLNG(1000 * 1.5 * M * (B1 / 60))) / 1000) | |
1070 IF A1 < 40 THEN W = 0 | |
1080 PRINT "Total Income $"; V + W | |
1100 PRINT "(1) Another entry to this total (2) New Entry (3) Initial menu" | |
1120 INPUT I | |
1140 IF I = 1 THEN GOTO 820 | |
1160 IF I = 2 THEN GOTO 37 | |
1170 IF I = 3 THEN GOTO 1300 | |
1180 GOTO 1100 | |
1300 CLEAR | |
1310 PRINT " " | |
1320 GOTO 10 | |
'earnings | |
1500 CLEAR | |
1520 Z = 1 | |
1540 INPUT "Enter Salary Per Hour?"; M | |
1560 INPUT "Enter Total Hours?"; R | |
1580 INPUT "Enter Total Minutes?"; S | |
1590 IF 59 < S OR S < 0 THEN GOTO 1580 | |
1600 IF R >= 40 THEN X = R - 40 | |
1610 IF R >= 40 THEN V = (40 * M) | |
1630 IF R < 40 THEN V = ((R * M) + ((CLNG(1000 * M * (S / 60))) / 1000)) | |
1640 PRINT " Base Salary $"; V + V1 | |
1680 IF R >= 40 THEN PRINT " Overtime $"; ((X * M * 1.5) + ((CLNG(1000 * 1.5 * M * (S / 60))) / 1000)) + W1 | |
1700 W = (X * M * 1.5) + ((CLNG(1000 * 1.5 * M * (S / 60))) / 1000) | |
1710 IF R < 40 THEN W = 0 | |
1720 PRINT " Total Income $"; Q1 + V + W; "from "; Z; " work week(s) at $"; M; " per hour" | |
1740 Z = Z + 1 | |
1760 PRINT "(1) Another week added to this total" | |
1780 PRINT "(2) A new week" | |
1790 PRINT "(3) Initial menu" | |
1800 INPUT f | |
1820 IF f = 1 THEN GOTO 1880 | |
1840 IF f = 2 THEN GOTO 1500 | |
1860 IF f = 3 THEN GOTO 1300 | |
1870 GOTO 1760 | |
1880 Q1 = V + W + Q1 | |
1890 V1 = V + V1 | |
1900 GOTO 1560 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment