let canvas = document.getElementById("canvas");
let context = canvas.getContext("2d");
let radius = canvas.height / 2;
context.translate(radius, radius);
setInterval(drawClock, 1000);
drawFace(context, radius);
drawNumbers(context, radius);
drawLine(context, radius);
drawTime(context, radius);
function drawFace(context, radius) {
context.arc(0, 0, radius, 0, 2 * Math.PI);
context.fillStyle = "#f2ffe5";
gradient = context.createRadialGradient( 0, 0, radius * 0.95, 0, 0, radius * 1.05 );
gradient.addColorStop(0, '#333');
gradient.addColorStop(0.5, 'white');
gradient.addColorStop(1, '#333');
context.strokeStyle = gradient;
context.lineWidth = radius * 0.1;
context.arc(0, 0, radius * 0.06, 0, 2 * Math.PI);
context.fillStyle = '#333';
function drawNumbers(context, radius) {
context.font = radius * 0.15 + "px arial";
context.textBaseline = "middle";
context.textAlign = "center";
for (num = 1; num <= 12; num++) {
angle = num * Math.PI / 6;
context.translate(0, -radius * 0.85);
context.fillText(num.toString(), 0, 0);
context.translate(0, radius * 0.85);
function drawLine(context, radius) {
for (i = 1; i <= 60; i++) {
context.strokeStyle = "red";
context.strokeStyle = "black";
context.lineWidth = radius * 0.02;
context.rotate(i * Math.PI / 30);
context.moveTo(0, -radius * 1.05);
context.lineTo(0, -radius * 0.95);
context.rotate(-i * Math.PI / 30);
function drawTime(context, radius) {
let hours = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
hours = (hours * Math.PI / 6) +
(minutes * Math.PI / (6 * 60)) +
(seconds * Math.PI / (6 * 60 * 60));
drawHand(context, hours, radius * 0.4, radius * 0.05, "green");
minutes = (minutes * Math.PI / 30) + (seconds * Math.PI / (30 * 60));
drawHand(context, minutes, radius * 0.7, radius * 0.04, "blue");
seconds = (seconds * Math.PI / 30);
drawHand(context, seconds, radius * 0.8, radius * 0.02, "red");
function drawHand(context, pos, length, width, color) {
context.lineWidth = width;
context.lineCap = "round";
context.lineTo(0, -length);
context.strokeStyle = color;