Skip to content

Instantly share code, notes, and snippets.

@LawrenceHwang
Created December 18, 2018 18:14
Show Gist options
  • Save LawrenceHwang/54d860161124a33fd274f1bf564de4df to your computer and use it in GitHub Desktop.
Save LawrenceHwang/54d860161124a33fd274f1bf564de4df to your computer and use it in GitHub Desktop.
A powershell function to display the life calendar in weeks.
function Get-LifeCalendar {
[CmdletBinding()]
Param(
$StartDate = (Get-Date -Date '1980-01-01'),
$LifeinYear = 75
)
# A powershell function to display the life calendar in weeks.
# Original idea from: https://waitbutwhy.com/2014/05/life-weeks.html
$DaysSinceStartDate = (New-TimeSpan -Start $StartDate -End (Get-Date)).Days
$YearSinceStartDate = ($DaysSinceStartDate - ($DaysSinceStartDate % 365)) / 365
$DaySinceCurrentYear = (New-TimeSpan -Start (Get-Date -year (Get-Date).year -Month 1 -Day 1 ) -end (Get-Date)).Days
$WeekSinceCurrentYear = ($DaySinceCurrentYear - ($DaySinceCurrentYear % 7)) / 7
for ($i = 1; $i -le $YearSinceStartDate ; $i++) {
for ($w = 1; $w -le 52; $w ++) {
Write-Host '-' -NoNewline
}
}
for ($w = 1 ; $w -le ($WeekSinceCurrentYear - 1); $w ++) {
Write-Host '-' -NoNewline
}
Write-Host '*' -NoNewline -ForegroundColor Red
for ($w = ($WeekSinceCurrentYear + 1) ; $w -le 52; $w ++) {
Write-Host 'o' -NoNewline -ForegroundColor Cyan
}
for ($i = ($YearSinceStartDate + 1); $i -le $LifeinYear ; $i++) {
for ($w = 1; $w -le 52; $w ++) {
Write-Host 'o' -NoNewline -ForegroundColor Cyan
}
}
Write-Host "`n`n- : past weeks`n* : this week`no : future weeks`n`n"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment