lemon-project-template-glpk

annotate deps/glpk/examples/cal.mod @ 9:33de93886c88

Import GLPK 4.47
author Alpar Juttner <alpar@cs.elte.hu>
date Sun, 06 Nov 2011 20:59:10 +0100
parents
children
rev   line source
alpar@9 1 /* cal.mod - print an ASCII calendar of the given year */
alpar@9 2
alpar@9 3 /* Written in GNU MathProg by Andrew Makhorin <mao@gnu.org> */
alpar@9 4
alpar@9 5 param year, integer, >= 0001, <= 3999, default 2010;
alpar@9 6
alpar@9 7 param first_day{m in 1..12}, integer, >= 0, <= 6, :=
alpar@9 8 time2str(str2time(year & "-" & m & "-01", "%Y-%m-%d"), "%w");
alpar@9 9
alpar@9 10 param days_in_month{m in 1..12}, integer, >= 28, <= 31, :=
alpar@9 11 (str2time(year + (if m < 12 then 0 else 1) & "-" &
alpar@9 12 (if m < 12 then m+1 else 1) & "-01", "%Y-%m-%d") -
alpar@9 13 str2time(year & "-" & m & "-01", "%Y-%m-%d")) / 86400;
alpar@9 14
alpar@9 15 param foo{m in 1..12, k in 0..5, d in 0..6}, integer, :=
alpar@9 16 7 * k + d + 1 - first_day[m];
alpar@9 17
alpar@9 18 param cal{m in 1..12, k in 0..5, d in 0..6}, integer, :=
alpar@9 19 if 1 <= foo[m,k,d] and foo[m,k,d] <= days_in_month[m] then
alpar@9 20 foo[m,k,d];
alpar@9 21
alpar@9 22 printf "\n";
alpar@9 23 printf "%33s%04d\n", "", year;
alpar@9 24 printf "\n";
alpar@9 25 for {t in 1..12 by 3}
alpar@9 26 { for {m in t..t+2}
alpar@9 27 { printf "%7s%-14s", "", time2str(str2time(m, "%m"), "%B");
alpar@9 28 printf{0..0: m < t+2} " ";
alpar@9 29 }
alpar@9 30 printf "\n";
alpar@9 31 for {m in t..t+2}
alpar@9 32 { printf " S M Tu W Th F S";
alpar@9 33 printf{0..0: m < t+2} " ";
alpar@9 34 }
alpar@9 35 printf "\n";
alpar@9 36 for {k in 0..5}
alpar@9 37 { for {m in t..t+2}
alpar@9 38 { for {d in 0..6}
alpar@9 39 { printf{0..0: cal[m,k,d] = 0} " ";
alpar@9 40 printf{0..0: cal[m,k,d] != 0} " %2d", cal[m,k,d];
alpar@9 41 }
alpar@9 42 printf{0..0: m < t+2} " ";
alpar@9 43 }
alpar@9 44 printf "\n";
alpar@9 45 }
alpar@9 46 }
alpar@9 47 printf "\n";
alpar@9 48
alpar@9 49 end;