Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
43
Task/Calendar/D/calendar.d
Normal file
43
Task/Calendar/D/calendar.d
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import std.stdio, std.datetime, std.string, std.conv;
|
||||
|
||||
void printCalendar(in uint year, in uint nCols)
|
||||
in {
|
||||
assert(nCols > 0 && nCols <= 12);
|
||||
} body {
|
||||
immutable rows = 12 / nCols + (12 % nCols != 0);
|
||||
auto date = Date(year, 1, 1);
|
||||
int offs = date.dayOfWeek;
|
||||
const months = "January February March April May June
|
||||
July August September October November December".split;
|
||||
|
||||
string[8][12] mons;
|
||||
foreach (immutable m; 0 .. 12) {
|
||||
mons[m][0] = months[m].center(21);
|
||||
mons[m][1] = " Su Mo Tu We Th Fr Sa";
|
||||
immutable dim = date.daysInMonth;
|
||||
foreach (immutable d; 1 .. 43) {
|
||||
immutable day = d > offs && d <= offs + dim;
|
||||
immutable str = day ? format(" %2s", d-offs) : " ";
|
||||
mons[m][2 + (d - 1) / 7] ~= str;
|
||||
}
|
||||
offs = (offs + dim) % 7;
|
||||
date.add!"months"(1);
|
||||
}
|
||||
|
||||
"[Snoopy Picture]".center(nCols * 24 + 4).writeln;
|
||||
writeln(year.text.center(nCols * 24 + 4), "\n");
|
||||
foreach (immutable r; 0 .. rows) {
|
||||
string[8] s;
|
||||
foreach (immutable c; 0 .. nCols) {
|
||||
if (r * nCols + c > 11)
|
||||
break;
|
||||
foreach (immutable i, line; mons[r * nCols + c])
|
||||
s[i] ~= format(" %s", line);
|
||||
}
|
||||
writefln("%-(%s\n%)\n", s);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
printCalendar(1969, 3);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue