HP Calculator Wiki

Site Tools

prime:ucpl

Break schedules: calculates break periods.

*Initialize: this menu. variables ending in A are HMS format. variables ending in B are decimal format.

Input times. prompts for off and on times.

these are the airborne and landing times.

break out and in times.

these are the delay and early return
times in minutes after takeoff and
before landing.

number of breaks.

equal breaks: 4, 6 typically. E,E,E,E or E,E,E,E,E,E

weighted breaks: input desired long break. front or back.

allows the front half or rear half of the
breaks to be longer by choice.

4 or 6 typically. S,S,L,L or L,L,S,S or S,S,S,L,L,L or L,L,L,S,S,S

*2 short followed by 3 long and short: − places the sleep period outside the dinner

service.

− S,S,L,L,L,S

where S=Short and L=Long

APPLICATION SECTION

MIDNIGHT();

All variables ending in A are hexagesimal, decimals end in B. declare variables.

EXPORT IN,OUT,NUM,EQL,TIM; EXPORT OFA,OFB,ONA,ONB; EXPORT TOA,TOB,CAA,CAB; EXPORT SHA,SHB,LGA,LGB; EXPORT WTA,WTB,WTC;

title of program within app EXPORT Break_schedules() BEGIN END; menu display for prepping the calculator.

VIEW “Initialize”,IT()

BEGIN

HFormat:=1;
HDigits:=4;
HAngle:=1;
STARTVIEW(6,1);
LOCAL A;

END;

input times VIEW “Input times/# of breaks”,OO() BEGIN INPUT(OFA,“Wheels off time”,“off time = ”,“off time”); INPUT(ONA,“Wheels on time”,“on time = ”,“on time”); INPUT(OUT,“Out time”,“out time = ”,“out time”); INPUT(IN,“In time”,“in time = ”,“in time”); INPUT(NUM,“# of breaks”,“# of breaks = ”,“# of breaks”); convert times to decimal.

OFB:=(FP(OFA)/60)*100+IP(OFA);
ONB:=(FP(ONA)/60)*100+IP(ONA);
OUT:=(FP(OUT)/60)*100+IP(OUT);
IN:=(FP(IN)/60)*100+IP(IN);

correct for landing time less then takeoff time, that is flight passes through midnight GMT.

IF OFB>ONB

THEN ONB:=ONB+24
ELSE ONB:=ONB;
END;

calculate common variables used by each section. ONB:=ONB-IN; OFB:=OFB+OUT; TOB:=ONB-OFB; TOA:=→HMS(TOB); EQL:=→HMS(TOB/NUM); MSGBOX(“Equal = ”+EQL); MSGBOX(“Total = ”+TOA); END; Equal break section of the the app accessed via “View” VIEW “EQUAL BREAK”,EQ() loop the following by NUM to display each consecutive time. BEGIN FOR N FROM 1 TO NUM DO TIM:=→HMS(OFB+EQL); TIM:=MIDNIGHT(TIM); OFB:=TIM; MSGBOX(“Time = ” +TIM+“”); END; END; end loop

Weighted break section of the the app accessed via “View”

VIEW “WEIGHTED BREAK”,WB()

label screen title, variable title, variable. ask for specific variable to this section and display. BEGIN INPUT (WTA,“Weighted time”,“weighted time = ”,“weighted time”); WTB:=(FP(WTA)/60)*100+IP(WTA); CAB:=(TOB-(NUM/2*WTB))/(NUM/2); CAA:=→HMS(CAB); MSGBOX(“Calculated = ” +CAA+“”); Choose menu for placing weighted break at front or back of the break periods. CHOOSE(A,“Period”,“Front”,“Back”); test and loop for creating the period with specified break time based on choose menu. IF A==1 THEN WTC:=WTB ELSE WTC:=CAB; END; FOR N FROM 1 TO NUM/2 DO TIM:=→HMS(OFB+WTC); TIM:=MIDNIGHT(TIM); OFB:=TIM; MSGBOX(“Time = ” +TIM+“”) END; test and loop for finishing the period with remaining break time. IF A==2 THEN WTC:=WTB ELSE WTC:=CAB; END; FOR N FROM 1 TO NUM/2 DO TIM:=→HMS(OFB+WTC); TIM:=MIDNIGHT(TIM); OFB:=TIM; MSGBOX(“Time = ” +TIM+“”); END; END; long and short break section of the the app accessed via “View”. VIEW “LONG SHORT BREAK”,LS() label screen title, variable title, variable. ask for specific variable to this section and display.

BEGIN

INPUT (LGA,"Long","long time = ","long time");
LGB:=(FP(LGA)/60)*100+IP(LGA);
SHB:=(TOB-(LGB*3))/3;
SHA:=→HMS(SHB);
MSGBOX("Short = " +SHA+"");

loop for first 2 short breaks. FOR N FROM 1 TO 2 DO TIM:=→HMS(OFB+SHB); TIM:=MIDNIGHT(TIM); OFB:=TIM; MSGBOX(“Time = ” +TIM+“”) END; loop for 3 long breaks.

FOR N FROM 1 TO 3 DO
TIM:=→HMS(OFB+LGB);
TIM:=MIDNIGHT(TIM);
OFB:=TIM;
MSGBOX("Time = " +TIM+"")
END;

final short break added to end. TIM:=→HMS(OFB+SHB); TIM:=MIDNIGHT(TIM); OFB:=TIM; MSGBOX(“Time = ” +TIM+“”) END; END;