Trivial birthday code

My daughter asked yesterday what an “application” was, which led to a discussion of computer programming. I demonstrated by writing a one-line program in Mathematica that computed the day of the week her birthday landed on every year since she was born. She was not impressed.

Code below; birthday changed for privacy protection.

Module[{bday},
 TableForm[
  Table[{i, bday = DatePlus["August 1, 2005", {i, "Year"}];
    DateString[bday, {"MonthName", " ", "DayShort", ", ", "Year"}],
    DateString[bday, "DayName"]}, {i, 0, 7}],
  TableHeadings -> {None, {"Birthday", "Date", "Day of Week"}}]]

table of birthdays

For extra credit, it’s not hard to generate a histogram showing the distribution of days of the week.

daysOfTheWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",  "Friday", "Saturday"};

numboHits[dayOfWeek_] :=
 Module[{holder},
  holder =
   Select[
    Gather[
     Sort[
      Table[
       DateString[DatePlus["August 1, 2005", {i, "Year"}], "DayName"], {i, 0,
        25(*years to check*)}]]], #[[1]] == dayOfWeek &];
  If[Length[holder] == 1, Length[holder[[1]]], 0]]

BarChart[Map[numboHits[#] &, daysOfTheWeek], ChartLabels -> daysOfTheWeek]

birthday histogram

One thought on “Trivial birthday code

  1. Pingback: Amusing Youth With A Computable Document Format | monkeywrench

Comments are closed.