Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
30 lines (18 sloc) 5.05 KB

Календарь на одну жизнь

Read this in other languages: English, Русский

пример календаря

Изображения с календарями для распечатки и генерирующий скрипт. Все изображения имеют формат *.png, размер А0 (1189x841мм) и разрешение 300dpi(14043x9933px). Можно распечатать в «Копирке» за 150₽ или ещё дешевле в других копировальных центрах.

Календарь создавался как инструмент для самоанализа. На нем можно по датам отметить сроки различных событий и оценить их в масштабе своей жизни. Кстати, из суммы этих событий, твоего опыта, состоит твоя личность, то есть ты лучше поймешь, что из себя представляешь. Также можно объективней оценить отношение цена/выгода у планируемых действий, например готов ли ты подписать какой-нибудь длительный контракт. Ну и высший пилотаж - перевести в время стоимость крупных материальных планов, чтобы понимать: "ради этой машины я пожертвую вот этим вот годом" или "ради этой квартиры я потрачу вот эти 5 лет" и т.п.

Для примера на картинке снизу показан график вероятности доживания. По горизонтальной оси - возраст, по вертикальной - процент людей доживших до него.
график вероятности доживания

Календари разделены по годам рождения, соответственно каждый начинается с указанного года и исходя из этого формируются заголовки вроде 1994г 15лет. Есть следующие варианты:

  • Календарь на 60 лет на горизонтально ориентированном листе. Наиболее применим, т. к. каждый год занимает наибольшую площадь, а ненаступившие годы нужны только для понимания масштаба.Папка с изображениями 📂

  • Календарь на 80 лет на вертикально ориентированном листе. Каждый год занимает меньшую площадь, из-за поворота листа. Папка с изображениями 📂

  • Календарь на 100 лет на вертикально ориентированном листе. Площадь каждого года такая же, как у предыдущего, но они расположены немного плотнее. Папка с изображениями 📂

Также есть pdf-версия на большом количестве листов А4(Скачать pdf).

По коду. Проект содержит единственный файл generator.py, который тянет за собой библиотеку PIL. В нем наиболее интересны для повторного использования функции printMonth() и printYear() в самом верху. Каждая из них требует наличия глобальной переменной rus, значение которой определяет язык заголовков(True - Русский, False - Английский), и переменной draw, которая получается следующим образом

image       = Image.new("L", (imageWidth,imageHeight), 255)
draw        = ImageDraw.Draw(image)

Остальные переменные интуитивно понятны из названия. В случае если yearOfBirth > year, функция printYear() не печатает возраст в заголовке.