Ну тут- то понятно: чтобы не выходить на работу между 30.12(Вс) и 1.01.2013(НГ). И, по идее, его куда-то должны перенести. Скорее всего это суббота(29.12). Мой вопрос к тому, что не припоминаю, чтобы отработки переносились на воскресенья.
Если уж говорить строго с т.з. дискретной математики, то данный календарь не двоичный, а четвертичный.
Т.е. мы имеет в каждой элементарной ячейке не бит, а тетрит (пусто, зеленый, желтый, красный).
На самом деле не совсем так. Т.к. В одном дне не может быть одновременно зелёный и красный.
В каждой строке мы имеем 5 бит на дату + 2 бита на цвет (есть место ещё для одного цвета)
Фактически, ещё для каждого месяца нужно 3 бита на смещение дня (с какого дня начинается месяц) и 2 бита на количество дней в месяце (28,29,30,31). Итого, 5 бит на месяц + 7 бит на каждый день.
Не совсем так. Желтые — это предпраздничные, сокращенные дни. Красные — выходные, когда на работу идти не нужно, не важно, праздник, или просто выходной.
Только числа (номера дней в месяце) удобно закодированы. А как быстро месяц выбрать? Как день недели определить? Особенно конец апреля сбивает с толку.
Я не дождался, пока автор выложит исходник, и написал свою версию. Правда результат пока только в текстовом виде.
Но если вам это интересно, то заходите на https://github.com/nevostruev/binary-calendar
Мысль насчет года была, но органичного решения не пришло в голову. В картинке 0 — пустой квадрат, а 1 — закрашенный. Число 2012 в двоичном виде 11111011100, т.е. последние два квадрата получаются пустыми.
Ваш вариант понятен, но, как мне кажется, вносит путаницу, смешивая два разных вида представления нулей и единиц в заголовке и в самом календаре.
возможно, каждый программист приверженный тому или иному языку программирования мог бы поставить начало и конец программы у числа 2012. что-нибудь типа begin 11111011100 end.
может быть фигурные или квадратные скобки спасут: {11111011100}.
а еще белые квадраты можно заменить еле заметными точками, кружочками, снежинками, свастиками и любыми другими знаками на вкус пользователя.
ну это тогда получается уже целый веб-сервис, на котором можно задать все эти параметры.
Я мужу-програмисту на Новый Год на Амазоне купила математический календарь (The Mathematics Calendar 2012) Там на каждый день небольшая математическая задачка.
Надо бы сетку добавить, или отступы между квадратиками, а то так на глаз не очень просто определить, сколько квадратиков умещается в сплошном горизонтальном блоке, приходится сравнивать с соседями
Календарь настоящего программиста 2012