Skip to content

Instantly share code, notes, and snippets.

@brianpeiris
Created July 3, 2010 15:53
Show Gist options
  • Save brianpeiris/462651 to your computer and use it in GitHub Desktop.
Save brianpeiris/462651 to your computer and use it in GitHub Desktop.
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