Как составить программу календарь

0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 4

1

Создать календарь на год

19.04.2011, 12:30. Показов 24728. Ответов 20


Студворк — интернет-сервис помощи студентам

помогите пожалуйста составить календарь,так что бы при вводе года на экран выводился календарь на весь год.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

19.04.2011, 12:30

Ответы с готовыми решениями:

Календарь на год
Подскажите плз как сделать так, чтобы при изменении года, менялся год в каждом monthСalendar и…

Календарь на год
Доброго времени суток, никак не получается решить задачу.
Написать программу формирования…

Календарь на год
Здравствуйте!

Хочу сделать календарь событий на год
типа как тут…

Календарь на любой год
Доброго времени суток..
Есть одна проблема, а собственно имеется макрос для Exel VBA для…

20

IrineK

Заблокирован

19.04.2011, 17:37

2

Лучший ответ Сообщение было отмечено как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <time.h>
 
int main()
{   time_t now;
    struct tm * timeinfo;
    int year, m, i, j;
    char* month[] = { "January","February", "March","April", "May","June", 
            "July", "August","September","October", "November","December"};
    
    printf ("YEAR: "); scanf ("%d",&year);
    time (&now); //get current timeinfo and modify it to the user's choice
    timeinfo = localtime (&now);
    timeinfo->tm_year = year-1900; //years numerated from 1900
    timeinfo->tm_mon = 0;
 
    m =-1;
while(m<12)
{   for(i=1; i<33; i++) //year days with "overload"
    {   timeinfo->tm_mday = i;
        mktime (timeinfo); //call mktime: the whole timeinfo for the day will be set 
 
        if(timeinfo->tm_mon > m) //"end month" event, "overload" processing
        {   printf("n                        %sn",month[timeinfo->tm_mon]);
            printf("_______________________________n");
            printf("  Su  Mo  Tu  We  Th  Fr  San");
            printf("_______________________________n");
            for(j=0;j<(timeinfo->tm_wday);j++)
                printf("    ");
            m++;
            break;
        }
        if (m==11 && timeinfo->tm_mon ==0) //"end year" event
        {   m++;
            break;
        }
        
        printf("%4d",timeinfo->tm_mday); //routine
            
        if(timeinfo->tm_wday==6)//"end week" event
            printf("n");
    }
}
    getchar();getchar();
    return 0;
}

Миниатюры

Создать календарь на год
 



11



IrineK

Заблокирован

19.04.2011, 17:47

3

В силу “особенностей” time.h работает, начиная с 1970 года.



1



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 4

20.04.2011, 17:00

 [ТС]

4

аааафигеть)спасибо огромное))

Добавлено через 38 секунд
аафииигеть )спаисбо огромное)



0



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 4

17.05.2011, 15:59

 [ТС]

5

а можно еще куда-то в эту программу запихать пользовательскую функцию?хотя бы одну?и что бы вывод был в файл или на экран?
вообще не предствляю что такое сделать можно))препод еще сказал что надо в общем эти два условия. заранее благодарю)



0



5227 / 3199 / 362

Регистрация: 12.12.2009

Сообщений: 8,112

Записей в блоге: 2

17.05.2011, 16:26

6

Цитата
Сообщение от IrineK
Посмотреть сообщение

В силу “особенностей” time.h работает, начиная с 1970 года.

Эта “особенность” – начало жизни ОС UNIX



0



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 4

17.06.2011, 20:34

 [ТС]

7

аааа,блин реал помогите. вообще не могу выввести это чертово програмирование.народ. честно скажу на знаю чо там пытаться сделать даже((



0



Антон1987

10.07.2012, 19:35

8

подскажите, пожалуйста, как сделать то же самое, но только на определенный месяц и год! Огромное спасибо!!!

IrineK

Заблокирован

15.07.2012, 11:24

9

Как-то так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <time.h>
 
int main()
{   time_t now;
    struct tm * timeinfo;
    
    int year, m, i, j;
    char* month[] = { "January","February", "March","April", "May","June", 
        "July", "August","September","October", "November","December"}; 
   
    printf("Calendar for given month and year. ");
    printf("Month: values from 1 to 12; year: from 1970n");
    printf("Sample: 5.1998 or 12.2022n");
 
    do
    {   printf ("Month.Year : "); scanf ("%d.%d",&m,&year);
    }   while(!(m>0 && m<13 && year>1970));
 
     
    time (&now); //get current timeinfo and modify it to the user's choice
    timeinfo = localtime (&now);
    timeinfo->tm_year = year-1900; //years numerated from 1900
    timeinfo->tm_mon = m-1;
 
    printf("n                        %s, %dn",month[m-1], year);
    printf("_______________________________n");
    printf("  Su  Mo  Tu  We  Th  Fr  San");
    printf("_______________________________n");
    
                
    for(i=1; i<32; i++) //year days with "overload"  
            {  
 
        timeinfo->tm_mday = i;
        mktime (timeinfo);//call mktime: the whole timeinfo for the day will be set 
 
        if(timeinfo->tm_mon == m)
            break;
 
        if(i==1)
        {   for(j=0;j<(timeinfo->tm_wday);j++) 
            printf("    ");
        }
                         
        printf("%4d",timeinfo->tm_mday); //routine
                
        if(timeinfo->tm_wday==6)
                printf("n"); 
        
             }
     
    getchar();getchar(); 
    return 0;
}



2



0 / 0 / 0

Регистрация: 30.11.2017

Сообщений: 1

20.07.2012, 00:11

10

Какое условие надо добавить чтобы при выводе текущего месяца и года, текущая дата была бы выделена в квадратных скобках!?



0



0 / 0 / 0

Регистрация: 21.04.2015

Сообщений: 6

18.05.2015, 12:44

11

Каким образом можно реализовать прокрутку календаря вверх и вниз на Turbo C, если при запуске программы на экран помещается только фрагмент календаря?



0



0 / 0 / 0

Регистрация: 21.04.2015

Сообщений: 6

18.05.2015, 20:33

13

Цитата
Сообщение от IrineK
Посмотреть сообщение

Большое спасибо за ссылку, но я совсем не могу разобраться, как это сделать на Си.



0



Maxwee

0 / 0 / 0

Регистрация: 21.04.2015

Сообщений: 6

20.05.2015, 18:43

15

Цитата
Сообщение от IrineK
Посмотреть сообщение

Вам нужно поменять параметры самой консоли

how do I enable scrolling in Windows command prompt?

Или перейти на что-нибудь актуальней, чем TurboC

Спасибо, необходимость в скроллинге уже отпала.Но у меня возник вопрос по поводу вашего календаря на введённый месяц и год: как можно организовать проверку на правильный ввод Month.Year ( т.е при вводе не чисел, а, например, символов программа бы не висла, а выдавала сообщение о неправильном формате и просила повторить ввод)?
У меня возникла мысль о ожидании нажатия только цифр и бездействии при вводе символов, но с реализацией проблемы.

C
1
2
3
4
5
6
7
do   { printf ("Enter Month.Year : ");
    m==getch();
    year==getch();
 if (m>48 && m<58 && year>48 && year<58)
        scanf("%d.%d",&m,&year));
        
      }   while(!(m>0 && m<13 && year>1970));



0



IrineK

Заблокирован

20.05.2015, 23:37

16

Лучше считывать строку с помощью fgets, а затем искать в ней интовое число с помощью strol

Добавлено через 3 минуты
Еще варианты
Determine if a string is numeric

Добавлено через 10 минут
Ну, и целое эссе на тему безопасного ввода интов здесь



0



0 / 0 / 0

Регистрация: 12.06.2015

Сообщений: 5

12.06.2015, 12:20

17

почему все делают календари горизонтально только? где найти с вертикально расположенными днями недели ?



0



IrineK

Заблокирован

12.06.2015, 14:57

18

Цитата
Сообщение от cthfabvec
Посмотреть сообщение

где найти с вертикально расположенными днями недели ?

Дык, сделайте. Тюнинг, так сказать.



0



3174 / 1933 / 312

Регистрация: 27.08.2010

Сообщений: 5,131

Записей в блоге: 1

12.06.2015, 15:13

19

Цитата
Сообщение от cthfabvec
Посмотреть сообщение

календари горизонтально только

Не только.

Миниатюры

Создать календарь на год
 



0



0 / 0 / 0

Регистрация: 13.12.2015

Сообщений: 1

13.12.2015, 06:49

20

Здравствуйте, как сделать так чтобы он показывал конкретный (например: 2015) год.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

13.12.2015, 06:49

20

1. Обсуждение

После того, как я изучал C на первом курсе, я был сбит с толку. Как работает C? Он не такой интуитивно понятный, как HTML, не такой распространенный, как SQL, и не такой мощный, как Java. Почему он все еще там и остается горячим?

Ответ очень прост: язык программирования – это компания, структура языка C проста, но логическое мышление примерно такое же, как и в других языках, подходящих для начинающих.

Программирование не выполняется в одночасье, а способности нужно накапливать со временем. Это рекомендуется для начинающих, таких как я. Давайте поиграем с простыми программами на Си сами!

Во-вторых, вечный календарь

Простой годовой календарь, подобный этому, если вы посмотрите внимательно, нетрудно обнаружить, что он состоит из месячного календаря, каждый месяц имеет максимум 6 строк, что составляет 6 недель, 7 дней в неделю;

Процедура выглядит следующим образом:

Установите размер календаря:

int date [12] [6] [7]; // 12 месяцев, до 6 строк в месяц, 7 дней в строке
 int calendar [] [12] = {{31,28,31,30,31,30,31,31,30,31,30,31}, // средний год
		     {31,29,31,30,31,30,31,31,30,31,30,31}}; // високосный год
int year;
 char title [] = "SUN MON TUE WED THU FRI SAT"; // день недели
 int sw, скачок, i, j, k, wd, день; // переменная
 // sw день недели, скачок 0 нормальный год 1 високосный год, i, j, k вспомогательные переменные, wd неделя, день

Предложите пользователю ввести год для запроса: (Введите и перевод строки)

printf("Please input the year whose calendar you want to know: ");
scanf("%d%*c",&year);

Рассчитайте 1 января года и день недели:

(Поскольку 1 января установлено в субботу, 1 марта – в среду. Чтобы упростить алгоритм, этот алгоритм использует “неделю” в качестве единицы расчета. А 1 марта выбран в качестве базового месяца.

Каждые 4 года (3 обычных года + 1 високосный год) 208 недель + 5 дней = 208 * 7 + 5 = 1461
100 * за 100 лет (208 недель + 5 дней) -1 день = 5217 недель + 5 дней (все 100 лет временно устанавливаются как нормальный год)
Каждые 400 лет, всего 4 * (5217 недель + 5 дней) + 1 день (полные 400 лет прыжка) = 20871 неделя + 0 дней
– это 400 лет реинкарнации! )

long int getyear(int year,int month){
	if (month <3) return year-1; // На основе марта первого года
	else return year;
}
long int getmonth(int month){
	 if (month <3) return month + 13; // настроить месяц на следующий месяц
	else return month+1;
}
long int getday(int year,int month,int day){
	 return 1461L * getyear (год, месяц) / 4 + 153L * getmonth (месяц) / 5 + день; // Подсчитать количество дней с 1 марта первого года
         // Метод расчета: 1461 день каждые четыре года (эквивалентно вычислению среднего количества дней в году) 
         // Период 153 дня каждые пять месяцев (эквивалентно вычислению среднего количества дней в месяце)    
}
int getweekday(int year,int month,int day){
	 return (int) ((getday (year, month, day)% 7-2 + 7)% 7); // Получить номер недели для даты
         // Делим полученное количество дней на остаток 7 дней, минус среда, 1 марта, а остальные - дополнительные вычисления, которые гарантируют положительное число 1-7
}

Определите, является ли это високосным годом:

leap= year%4==0 && year%100||year%400==0 ;

Оставьте календарь пустым:

for(i=0;i<12;i++)
	for(j=0;j<6;j++)
		for(k=0;k<7;k++)
			date[i][j][k]=0;

Введите дату года:

sw=getweekday(year,1,1);
for(i=0;i<12;i++)
	for(wd=0,day=1; day <= calendar[leap][i]; day++){
		 date[i][wd][sw]=day;
		sw = ++sw%7;
		if(sw==0)
             wd++;
		}

Форматированный вывод:

printf("n|==================The Calendar of Year %d =====================|n|",year);
	for(i=0;i<6;i++){
		for(wd=0,k=0;k<7;k++)
			wd+=date[i][5][k]+date[i+6][5][k];
		wd=wd?6:5;
		printf("%2d  %s  %2d  %s |n|",i+1,title,i+7,title);
		for(j=0;j<wd;j++){
		printf("   ");
		for(k=0;k<7;k++)
			if(date[i][j][k])
				printf("%4d",date[i][j][k]);
			else printf("    ");
		printf("     ");
		for(k=0;k<7;k++)
			if(date[i+6][j][k])
				printf("%4d",date[i+6][j][k]);
			else printf("    ");
		printf(" |n|");
	}
		scanf("%*c");
	}	
		puts("=================================================================|");
	puts("n Press any key to quit...");

Результат

Полный код:

#include "stdio.h"
long int getyear(int year,int month){
	if(month<3) return year-1;
	else return year;
}

long int getmonth(int month){
	if(month<3) return month+13;
	else return month+1;
}

long int getday(int year,int month,int day){
	return 1461L*f(year,month)/4+153L*g(month)/5+day;
}

int getweekday(int year,int month,int day){
	return(int)((n(year,month,day)%7-2+7)%7);
}

int date[12][6][7];
int calender[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
		    {31,29,31,30,31,30,31,31,30,31,30,31}};
main()
{int sw,leap,i,j,k,wd,day;
 int year;
 char title[]="SUN MON TUE WED THU FRI SAT";
printf("Please input the year whose calendar you want to know: ");
scanf("%d%*c",&year);
sw=w(year,1,1);
leap=year%4==0&&year%100||year%400==0;
for(i=0;i<12;i++)
	for(j=0;j<6;j++)
		for(k=0;k<7;k++)
			date[i][j][k]=0;
for(i=0;i<12;i++)
	for(wd=0,day=1;day<=day_tbl[leap][i];day++){
	 date[i][wd][sw]=day;
	sw=++sw%7;
	if(sw==0) wd++;
	}
	printf("n|==================The Calendar of Year %d =====================|n|",year);
for(i=0;i<6;i++){
	for(wd=0,k=0;k<7;k++)
		wd+=date[i][5][k]+date[i+6][5][k];
	wd=wd?6:5;
	printf("%2d  %s  %2d  %s |n|",i+1,title,i+7,title);
	for(j=0;j<wd;j++)
	{
		printf("   ");
		for(k=0;k<7;k++)
			if(date[i][j][k])
				printf("%4d",date[i][j][k]);
			else printf("    ");
		printf("     ");
		for(k=0;k<7;k++)
			if(date[i+6][j][k])
				printf("%4d",date[i+6][j][k]);
			else printf("    ");
		printf(" |n|");
	}
	scanf("%*c"); 
}
puts("=================================================================|");
puts("n Press any key to quit...");
}

Одна из первых программ, которую можно попробовать написать на Python — это календарь. Она не сложная, но при всем при этом, с её помощью можно потренировать навыки работы со стандартными библиотеками Tkinter и calendar.

Описание программы

Календарь написан на Python 3 с помощью графической библиотеки Tkinter. Для определения текущего дня недели и количества дней в месяце использовалась стандартная библиотека calendar. Будем отображать календарь на текущий месяц в виде таблицы. Текущую дату выделим зелёным цветом. Также добавим кнопки для перелистывания месяцев.

Подключение библиотек и объявление переменных

Подключаем стандартные библиотеки Tkinter, datetime и calendar с помощью import. Инициализируем класс root, с помощью которого будет отрисовываться графический интерфейс. Задаем заголовок окна «Calendar». Объявляем пустой список days. В дальнейшем в нем будут храниться поля таблицы. Каждое такое поле соответствует определенному дню.

В переменную now будем хранить текущую дату. В переменных year и month будут храниться год и месяц, календарь которых в данный момент отображается.

from tkinter import *
import calendar
import datetime
root = Tk()
root.title('Calendar')
days = []
now = datetime.datetime.now()
year = now.year
month = now.month

Меняем текущий месяц

Функции prew и next будут вызываться при нажатии на одну из клавиш смены месяца. Если текущее значение месяца «январь» и пользователь нажмет на кнопку перехода на предыдущий месяц, то тогда уменьшится год и месяц поменяет значение на «декабрь».

Обратите внимание на то, что переменные month и year глобальные. Поэтому перед изменением их значения в функции необходимо использовать ключевое слово global.

Функция fill перерисовывает календарь.

def prew():
    global month, year
    month -= 1
    if month == 0:
        month = 12
        year -= 1
    fill()

def next():
    global month, year
    month += 1
    if month == 13:
        month = 1
        year += 1
    fill()

Перерисовка календаря

В функции fill будет перерисовываться отображение всех элементов. Она будет вызываться в начале работы программы и каждый раз после изменения месяца, для которого нужно вывести календарь.

Вначале выводим наименование месяца и год. Вычисляем количество дней в предыдущем месяце и записываем в переменную prew_month_days. В переменноу week_day запишем номер дня недели первого числа месяца (от 0 – если первое число выпадет на понедельник, до 6 — на воскресенье).

После этого в трех циклах выводим числа и их корректируем их цвета:

  1. В первом цикле заполняем номера дней выбранного месяца. Отображать будем их черным цветом. Если это текущий день, то его фон делаем зелёным.
  2. Во втором цикле заполняем числа предыдущего месяца. Они отображаться будут серым цветом.
  3. В третьем цикле добавляем числа следующего месяца. Их также выводим серым цветом.
def fill():
    info_label['text'] = calendar.month_name[month] + ', ' + str(year)
    month_days = calendar.monthrange(year, month)[1]
    if month == 1:
        prew_month_days = calendar.monthrange(year-1, 12)[1]
    else:
        prew_month_days = calendar.monthrange(year, month - 1)[1]
    week_day = calendar.monthrange(year, month)[0]
    for n in range(month_days):
        days[n + week_day]['text'] = n+1
        days[n + week_day]['fg'] = 'black'
        if year == now.year and month == now.month and n == now.day:
            days[n + week_day]['background'] = 'green'
        else:
            days[n + week_day]['background'] = 'lightgray'
    for n in range(week_day):
        days[week_day - n - 1]['text'] = prew_month_days - n
        days[week_day - n - 1]['fg'] = 'gray'
        days[week_day - n - 1]['background'] = '#f3f3f3'
    for n in range(6*7 - month_days - week_day):
        days[week_day + month_days + n]['text'] = n+1
        days[week_day + month_days + n]['fg'] = 'gray'
        days[week_day + month_days + n]['background'] = '#f3f3f3'

Отображение элементов

Для отображения календаря в Python 3 мы используем библиотеку Tkinter. Воспользуемся её упаковщиком grid. Он представит все создаваемые нами элементы в виде таблицы.

В первой строке в крайней левой и крайней правой ячейках (с номерами столбцов 0 и 6) отобразим кнопки смены месяцев. По центру выведем текстовое поле, в котором будет отображаться текущий год и месяц. Это поле будет занимать 5 ячеек таблицы, поэтому выставим параметр columnspan в 5.

prew_button = Button(root, text='<', command=prew)
prew_button.grid(row=0, column=0, sticky='nsew')
next_button = Button(root, text='>', command=next)
next_button.grid(row=0, column=6, sticky='nsew')
info_label = Label(root, text='0', width=1, height=1, 
            font=('Verdana', 16, 'bold'), fg='blue')
info_label.grid(row=0, column=1, columnspan=5, sticky='nsew')

Во второй строке выведем сокращенные названия месяцев.

Дальше отображаем 6 строк по 7 столбцов, которые будем заполнять числами, обозначающими номера дней.

В завершении используем функцию fill, которая заполнит наш календарь начальными данными – календарем текущего месяца. После этого запустим цикл обработки событий mainloop.

for n in range(7):
    lbl = Label(root, text=calendar.day_abbr[n], width=1, height=1, 
                font=('Verdana', 10, 'normal'), fg='darkblue')
    lbl.grid(row=1, column=n, sticky='nsew')
for row in range(6):
    for col in range(7):
        lbl = Label(root, text='0', width=4, height=2, 
                    font=('Verdana', 16, 'bold'))
        lbl.grid(row=row+2, column=col, sticky='nsew')
        days.append(lbl)
fill()
root.mainloop()

Пример программы на Python 3 для вывода календаря с помощью библиотеки Tkinter достаточно прост. Он поможет программистам в изучении языка. Здесь у нас представлены различные условные операторы и циклы, работа с глобальными переменными в функциях. Самое сложное в этом примере – это отображение графических элементов.

Пример можно усложнить и выводить календарь сразу на весь год. Для этого надо будет использовать классы.

Свой календарь

Приветствую всех посетителей!

Если раньше приходилось использовать стандартные календари, то с развитием компьютерной техники — календарь можно сделать свой, с нужными праздниками (например, отметить на нем дни рождения родственников, юбилеи и торжества), своим оформлением и размером и пр. 👌

В общем, сделать всё так, как нужно именно вам (чтобы ничего не забыть и вовремя всех поздравить!). Согласитесь, удобно было бы заранее знать, где и какие праздники, и планы вас ожидают?!

Вообще, способов, чтобы сделать свой календарь, достаточно много, и не каждый из них подойдет для человека, слабо разбирающегося в ПК. В этой статье приведу несколько пошаговых инструкций (в разных программах) для создания своего красочного календаря (думаю, что разберется каждый, кто того захочет).

*

Свой календарь!

Свой календарь! // Пример того, что мы будем делать (разумеется, фото можно будет загрузить своё, и праздники отметить те, которые вам нужны!)

*

👉 В тему!

Вместе с календарем можно подготовить и сделать красочный коллаж (это весьма хороший и памятный подарок!).

*

С помощью программы «Дизайн Календарей»

Официальный сайт: http://fotocalendar.su/

logo-fotocalendar

Удобнейшая программа для того, чтобы “состряпать” календарь под себя. Посудите сами:

  • вам доступны самые разные форматы календарей: карманные, перекидные, настольные. Временной интервал также настраивается: на месяц, на год, квартал;
  • в программе десятки самых разнообразных шаблонов: каждый шаблон можно доработать под свои требования;
  • вы можете добавить в календарь любые свои даты: дни рождения, отпуска, важные события в жизни. Каждую такую дату можно выделить особым цветом, и даже картинкой;
  • печатать календари можно на бумаге различных форматов (поддерживаются практически все типы принтеров).

Пожалуй, единственный минус — это в бесплатной версии есть проблема с сохранением в некоторых форматов. Подводя итог, в целом для решения нашей задачи — программа незаменима, и является одной из лучших в своем роде.

*

Рассмотрю подробно, как в ней сделать свой календарь:

  1. После установки и запуска программы, вы увидите окно приветствия с возможностью начать либо новый проект, либо открыть уже готовый. В своем примере выберу новый.

    Новый проект

    Новый проект

  2. Далее нужно выбрать тип календаря. В общем-то, здесь приведены все типы, которые только могут понадобиться: настенные календари (одни из самых популярных), настольные, карманные, на один месяц, на 12 месяцев, календарь с нуля. Для примера — выбрал вариант настенного календаря.

    Настенные календари

    Настенные календари

  3. Затем пред вами предстанут десятки всевозможных шаблонов: зеленые, синий, светлые, темные, с природой, с животными, старинные и т.д., и т.п. В общем-то, нужно выбрать один из предложенных вариантов — здесь не советую (как известно: “на вкус и цвет – товарищей нет…”).

    Выбор шаблона для календаря

    Выбор шаблона для календаря

  4. Следующий шаг: выбор фото для календаря. Здесь можно поставить фотку своего домашнего любимца, семейную фотографию, природу и т.д.

    Выбор фото

    Выбор фото

  5. Затем нужно установить год календаря (с какой даты начинать отсчет — кстати, совсем не обязательно именно с нового года) и установить формат листа (по умолчанию – стоит обычный А4). После установки — нажать кнопку “готово”.

    Выбор года и формата листа

    Выбор года и формата листа

  6. Собственно, Ваш календарь готов! Дело осталось за малым: настроить еще некоторые моменты, которые были обещаны в начале статьи 😎.

    Свой календарь!

    Свой календарь!

  7. Выбор праздников. Для этого нужно открыть раздел “Праздники” в верхнем меню программы отметить галочками, какие из праздников показывать на календаре. Например, вы можете показывать не только официальные праздничные дни, но и православные праздники

    Какие праздники показывать

    Какие праздники показывать

  8. Настойка оформления. Если календарь нуждается в доработке — вы всегда можете добавить нужные вам надписи, выделить любые из дат, настроить, например, лунный календарь, добавить страничку и пр. Для этого используйте раздел настроек “Календарь”.

    Настойка оформления

    Настойка оформления

  9. Раздел “Добавить” поможет вам добавить надпись, логотип, коллаж, фото на ваш календарь. Пример приведен на скрине ниже.

    Что еще можно добавить на календарь

    Что еще можно добавить на календарь

В общем-то, хороший и относительно простой способ создания красочных и ярких календарей (на мой взгляд 👌).

*

В Microsoft Word и Excel

Word и Excel есть на каждом втором домашнем компьютере — а значит, что сей способ будет актуален и востребован. К тому же календарь можно сделать быстро, не скачивая и не устанавливая дополнительного софта.

Рассмотрю ниже все действия по шагам на примере Word, Excel 2016/2019 (дабы их не так уж и много ✌).

*

👉 В помощь!

word, excel

Бесплатные аналоги Word и Excel — см. мою подборку

*

👉 Word

  1. Сначала открываете меню “Файл/Создать”, затем выбираете понравившейся шаблон календаря (если у вас есть доступ к интернету — нажмите по ссылке “Календари” (выделена прямоугольником красного цвета на скрине ниже)).

    Создать - календарь

    Создать – календарь

  2. В интернете есть десятки самых разнообразных шаблонов календарей: годовых, месячных, личных, бизнес-календари и т.д. (см. скрин ниже 👇);

    Категории шаблонов календаря

    Категории шаблонов календаря

  3. Выбрав понравившейся шаблон, вам останется только доработать его под себя. Например, я выбрал простенький календарь, в который нужно вставить свой логотип и указать свои контакты (телефон, почта и пр.).

    Вставка логотипа

    Вставка логотипа

  4. В общем-то, на этом создание календаря завершено…

    Простенький календарь готов

    Простенький календарь готов

  5. Пожалуй, единственный недостаток — это проблема со старыми шаблонами. Если вы взяли шаблон не того года, придется покопаться в настройках (перенести календарь в Excel и с помощью формул поправить его). На мой взгляд, в этом случае, быстрее будет сделать календарь полностью в Excel (об этом пару строк ниже в статье).

*

👉 Excel

  1. Запускаем Excel и в первом окне нажимаем по ссылке “Календари (необходимо подключение к интернету). Так же вызвать этот экран можно сочетанием кнопок Ctrl+O (т.е. открыть/создать).

    Excel - календари

    Excel – календари

  2. Далее, среди сотни шаблонов календарей находим тот, который по душе. Например, я свой выбор остановил на календаре с символами восточного гороскопа. Чтобы загрузить шаблон к себе — нажмите всего одну кнопку “Создать”.

    Выбранный календарь

    Выбранный календарь

  3. Ну и последнее, что осталось — это указать нужный вам год. Чем хорош Excel — тем, что он автоматически пересчитает ваш календарь и поставит числа и дни так, как они должны идти в выбранном вами году. Вам же останется пометить вручную для себя нужные даты, указать контакты на календаре (если нужно) и распечатать его.

    Указываем нужный год

    Указываем нужный год

*

Онлайн-способ создания календаря

В сети сейчас есть десятки разнообразных сайтов по созданию самых разных календариков. Приведу несколько примеров, на которых остановился сам…

❶ 

http://calendarum.ru/

Выбор шаблона (онлайн)

Выбор шаблона (онлайн)

Простенький сайт для создания календарика, визитки, конвертика. Пользоваться им очень удобно: все делается по шагам, все на русском языке. Сервис поддерживает картинки формата JPG и PNG, присутствует коллекция готовых шаблонов, красивые шрифты и пр. В общем-то, удобно, быстро, красиво!

https://www.canva.com

Выбор шаблона для календаря (Canva) | Кликабельно

Выбор шаблона для календаря (Canva) | Кликабельно

Этот сайт примечателен тем, что вы можете выбрать тему и шаблон календарика (например, какой-нибудь праздник 23 февраля, 8 марта и др.), затем загрузить в него свое фото, и скачать его к себе. Отмечу, что любой из шаблонов можно достаточно сильно изменить: добавить текст, поменять фон, изменить какие-то элементы.

Ну а затем, распечатав такой календарь — он станет отличным и оригинальным подарком.

Кстати, ваша загруженная фотография будет автоматически обработана нужными фильтрами и аккуратно вписана в цветовую гамму выбранного шаблона.

*

В общем-то, таких сайтов очень много, и на всех на них останавливаться не буду…

Удачи!

👋

Первая публикация: 14.05.2017

Корректировка: 1.12.2020

donate

dzen-ya

Полезный софт:

  • видеомонтаж
  • Видео-Монтаж
  • Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • утилита для оптимизации
  • Ускоритель компьютера
  • Программа для очистки Windows от “мусора” (удаляет временные файлы, ускоряет систему, оптимизирует реестр).

/*
Написать программу формирования календаря для любого года начиная с 1900 года.(1 января 1900 года - понедельник).
Результатом работы программы должен быть текстовый файл, содержащий календарь в привычном для пользователя виде, 
что позволит просматривать его и получать копии, не прибегая к новым запускам программы.
/*
/*
codeby.net
Autor: DarkKnight125 (Denis Goncharov)
*/
#include <iostream> 
#include <iomanip> //Манипуляторы для поточных вводов-выводов
#include <time.h> //Это наша суть, работа со временем
#include <fstream> //Файловые потоки ввода/вывода

using namespace std;

void main(void)
{
setlocale(LC_ALL,"Russian");
int cYear; //Год на который будет разрабатыватся календарь
struct tm *date; //Структурно календарной даты
time_t temp = time(NULL);
char *Month[] = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь","Ноябрь", "Декабрь"};

ofstream file("Calendar.txt"); //Файловый ввод


cout << "Введите год : ";
cin >> cYear; //Ввод года

//Поставим date в 1 января введенного года
date = localtime(&temp); //Получим текущую дату
date->tm_year = cYear - 1900;	
date->tm_mon = 0; //Это январь
date->tm_mday = 1; //Это первое число

time_t a = mktime(date); //Создадим time_t исходя из нашей даты
int limitsDay = date->tm_year; //Для цикла определим текущий год из структуры
int Selection = -1; //Опция выбора (смещение строки) если текущий месяц закончился

//Пока структура указывает еще на введенный год
while (date->tm_year == limitsDay) 
{
if (Selection != date->tm_mon) //Проверим не закончился ли текущий месяц (нам же шапку вывести нужно)
{
//А если месяц закончился, то перейдем на след. строку
cout<< endl;
file<< endl;

//Выведим название месяца
cout<< endl<< Month[date->tm_mon] << endl; 
file<< endl<< Month[date->tm_mon] << endl;

//Выведим шапку дней недели
cout<< setw(3) << "Вс"<< setw(3) << "Пн"<< setw(3) << "Вт"<< setw(3) << "Ср"<< setw(3) << "Чт"<< setw(3) << "Пт"<< setw(3) << "Сб"<<endl;
file<< setw(3) << "Вс"<< setw(3) << "Пн"<< setw(3) << "Вт"<< setw(3) << "Ср"<< setw(3) << "Чт"<< setw(3) << "Пт"<< setw(3) << "Сб"<<endl;

Selection = date->tm_mon; //Перезапишим Selection в уже новый-текущий месяц
if (date->tm_wday != 0) //Если день недели в новом месяце не сначало, то отделим пробелами
{
for (int i = 0; i < date->tm_wday; i++)
{
cout<< setw(3) << "";
file<< setw(3) << "";
}
}
}

cout<<setw(3)<<date->tm_mday; //Вывод дня в месяце
file<< setw(3) << date->tm_mday;

if (date->tm_wday == 6) //Если дни недели закончились перейдем на новую строку
{
cout << endl;
file << endl;
}
date->tm_mday++; //Добавим 1 день

a = mktime(date); //Свормируем новое время по данным структуры
}

cout << endl;
file.close(); //Закроем файл

}

Добавить комментарий