final String format = "This timer has been running for" +
"{0,number,integer} hours {1,number,integer} minutes " +
"and {2,number,integer} seconds";
final String prefix = "Timer:";
boolean clockMenu = false;
menu = loadImage("menu.png");
timer = loadImage("timer.png");
int radius = min(width, height) / 2;
secondsRadius = radius * 0.42;
minutesRadius = radius * 0.40;
hoursRadius = radius * 0.30;
clockDiameter = radius * 1.4;
int seconds = (millis() - startingTime) / 1000;
int minutes = seconds / 60;
int hours = minutes / 60;
String message = prefix +
GetPlural(hours, "hour") + " " +
GetPlural(minutes, "minute") + " and " +
GetPlural(seconds, "second");
ellipse(cx, cy, clockDiameter, clockDiameter);
float s = map(second(), 0, 60, 0, TWO_PI) - HALF_PI;
float m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI;
float h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;
line(cx, cy, cx + cos(s) * secondsRadius, cy + sin(s) * secondsRadius);
line(cx, cy, cx + cos(m) * minutesRadius, cy + sin(m) * minutesRadius);
line(cx, cy, cx + cos(h) * hoursRadius, cy + sin(h) * hoursRadius);
for (int a = 0; a < 360; a+=6) {
float angle = radians(a);
float x = cx + cos(angle) * secondsRadius;
float y = cy + sin(angle) * secondsRadius;
text("Baby Timer Metro Edition",210,30);
text(nf(hour(), 2) + ":" + nf(minute(), 2) + ":" + nf(second(), 2), 280, 200);
String GetPlural(int value, String word)
return value + " " + word;
return value + " " + word + "s";
if (mouseX > 100 && mouseX < 600 && mouseY > && mouseY < 400 && clockMenu == false)