Skip to content

Instantly share code, notes, and snippets.

@robert-wallis
Created December 15, 2023 12:39
Show Gist options
  • Save robert-wallis/abcecf29aa186014c84d13f7f09e6161 to your computer and use it in GitHub Desktop.
Save robert-wallis/abcecf29aa186014c84d13f7f09e6161 to your computer and use it in GitHub Desktop.
Shows how long life is
<!DOCTYPE html>
<html>
<head>
<title>Weeks in Life</title>
<meta charset="utf-8" />
<style>
* {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
@media print {
.from {
display: none;
}
}
@media screen {
.from {
display: inline-block;
}
}
h1 {
display: inline-block;
font-weight: 200;
margin-left: 1.8rem;
}
body {
width: 19in;
height: 13in;
}
.chart {
display: grid;
grid-template-columns: repeat(53, 1fr);
}
.week {
padding: 0.2rem;
margin: 0 0.25rem 0.25rem 0;
border-radius: 0.2rem;
text-align: center;
color: #FFF;
font-size: 0.9rem;
font-weight: bold;
}
.year {
padding: 0.2rem;
margin: 0 0.2rem 0.2rem 0;
font-size: 0.9rem;
color: #CCC;
text-align: right;
}
.pre-k {
background-color: #e0e0e0;
}
.k-12 {
background-color: #ffe0e0;
}
.working {
background-color: #e0f5ff;
}
.retired {
background-color: #e0e0e0;
}
.from {
outline: 1px solid #000;
}
</style>
<script>
function main() {
layout();
}
function layout() {
console.log("making weeks")
let chart = document.querySelector('.chart');
chart.childNodes.forEach(function(node) {
chart.removeChild(node);
});
let weeks_til_kindergarten = 5 * 52;
let weeks_til_college = 18 * 52;
let weeks_til_retirement = 67 * 52;
let weeks_end = 80 * 52;
let weeks_width = 52;
let weeks_height = Math.ceil(weeks_end / weeks_width);
for (var h = 0; h < weeks_height; h++) {
let year = document.createElement('div');
year.classList.add("year");
year.innerHTML = h;
chart.appendChild(year);
for (var w = 0; w < weeks_width; w++) {
let week_id = h * weeks_width + w;
let week = document.createElement('div');
week.classList.add("week");
if (week_id < weeks_til_kindergarten) {
week.classList.add("pre-k");
} else if (week_id < weeks_til_college) {
week.classList.add("k-12");
} else if (week_id < weeks_til_retirement) {
week.classList.add("working");
} else {
week.classList.add("retired");
}
week.innerHTML = week_id + 1;
chart.appendChild(week);
}
}
}
</script>
</head>
<body onload="main()">
<div>
<h1>Weeks in Life</h1>
</div>
<div class="chart"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment