Skip to content

Khan/khan-exercises

Fetching contributors…
Cannot retrieve contributors at this time
84 lines (80 sloc) 3.21 KB
 Telling time
randRange( 1, 12 ) randRange( 0, 3 ) * 15 MINUTE > 5 ? MINUTE : "0" + "" + MINUTE

What time is it? ( It is before noon currently. )

init({ range: [ [-4, 4 ], [ -4, 4] ], scale: 25 }); PIECH = new analogClock( HOUR, MINUTE, 3.5, false ); PIECH.drawLabels(); PIECH.draw();
init({ range: [ [-5, 5], [-3, 3] ], scale: 25 });

The time is HOUR : NICE_MINUTE.

path([ [-3, -1], [3, -1], [3, 1], [-3, 1], [-3, -1] ]); graph.time = label( [0, -0.1], "\\Huge{\\phantom{00}:\\phantom{00}}", "center" );

The small hand is for the hour, and the big hand is for the minutes.

The hour hand is pointing at HOUR, so the hour is HOUR.

The hour hand is between HOUR and HOUR + 1 === 13 ? 1 : HOUR + 1, so the hour is HOUR.

The hour hand is close to but hasn't passed HOUR + 1 === 13 ? 1 : HOUR + 1, so the hour is still HOUR.

graph.time.remove(); var padding = HOUR < 10 ? "\\phantom{0}" : ""; graph.time = label([0, -0.1], "\\Huge{" + padding + HOUR + ":\\phantom{00}}", "center" );

The minute hand starts pointing straight up for 0 minutes, and makes a complete circle in 1 hour.

For each quarter of the circle that the minute hand passes, add 15 minutes.

The minute hand has passed plural( MINUTE / 15, "fourth" ) of a circle, which represents 0MINUTE minutes.

graph.time.remove(); var padding = MINUTE < 10 ? "0" : ""; graph.time = label([0, -0.1], "\\Huge{" + HOUR + ":" + padding + MINUTE + "}", "center" );

The time is HOUR:NICE_MINUTE.

Something went wrong with that request. Please try again.