TypeScript

by muehan

HTML

<div id="app"></div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
  text-align: center;
}

TypeScript

function NumberToWeekday(weekday: number): string {
  switch(weekday){
  case 0: return "Monday";
  case 1: return "Tuesday";
  case 2: return "Wednesday";
  case 3: return "Thursday";
  case 4: return "Friday";
  case 5: return "Saturday";
  case 6: return "Sunday";
  default: return 'error';
  }
}

function WeekdayStringToNumber(weekday: string): string {
  switch(weekday){
  case "Monday": return 0;
  case "Tuesday": return 1;
  case "Wednesday": return 2;
  case "Thursday": return 3;
  case "Friday": return 4;
  case "Saturday": return 5;
  case "Sunday": return 6;
  default: return 'error';
  }
}

function DayOffset(weekday: string, offset: number) {
	let weekdayNumber = WeekdayStringToNumber(weekday);
  let result = (weekdayNumber + offset) % 7;
  result = result < 0 ? 7 - (result *-1) : result;
  let weekdayString = NumberToWeekday(result);

  return weekdayString;
}

document.querySelector("#app").innerHTML = DayOffset("Monday", 9999);
//document.querySelector("#app").innerHTML = DayOffset("Monday", -9998);