C++: Задачи armadillo: №4 Напечатать календарь произвольного года в файле.
реклама
#include<time.h>
#include<stdio.h>
void main()
{
FILE *f;
struct tm t;
char scr[48][80];
int w,wday,mday,year,mon=1,k,d,i,j;
char nday[7][3]={"пн","вт","ср","чт","пт","сб","вс"};
char nmon[12][9]={"январь","февраль","март",
"апрель","май","июнь","июль","август",
"сентябрь","октябрь","ноябрь","декабрь"};
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
year=2000;
t.tm_year=year-1900;
t.tm_mon=0;
t.tm_mday=1;
t.tm_hour=0;
t.tm_min=0;
t.tm_sec=1;
t.tm_isdst=-1;
mktime(&t);
wday=t.tm_wday;
if(wday==0)wday=7;
if((year%4)==0)m[1]=29;
for(i=0;i<48;i++)
{
for(j=0;j<78;j++)
scr[i][j]=32;
scr[i][78]='\n',scr[i][79]='\0';
}
sprintf(&scr[0][24],"Календарь на %u год",year);
for(d=0;d<4;d++)
for(k=0;k<3;k++,mon++)
{
sprintf(&scr[d*12+2][9+k*25],"%s",&nmon[mon-1][0]);
w=0;
for(mday=1;mday<=m[mon-1];mday++)
{
if(wday==8)wday=1,w++;
sprintf(&scr[wday+3+d*12][k*25],"%s",&nday[wday-1][0]);
sprintf(&scr[wday+3+d*12][4+w*3+k*25],"%.2u ",mday);
wday++;
}
if(wday==8)wday=1,w++;
}
f=fopen("n6.out","w");
for(i=0;i<48;i++)
for(j=0;j<79;j++)
if(scr[i][j]==0) scr[i][j]=32;
for(i=0;i<48;i++)
fputs(&scr[i][0],f);
fclose(f);
}
n6.out
январь февраль март
пн 03 10 17 24 31 пн 07 14 21 28 пн 06 13 20 27
вт 04 11 18 25 вт 01 08 15 22 29 вт 07 14 21 28
ср 05 12 19 26 ср 02 09 16 23 ср 01 08 15 22 29
чт 06 13 20 27 чт 03 10 17 24 чт 02 09 16 23 30
пт 07 14 21 28 пт 04 11 18 25 пт 03 10 17 24 31
сб 01 08 15 22 29 сб 05 12 19 26 сб 04 11 18 25
вс 02 09 16 23 30 вс 06 13 20 27 вс 05 12 19 26
апрель май июнь
пн 03 10 17 24 пн 01 08 15 22 29 пн 05 12 19 26
вт 04 11 18 25 вт 02 09 16 23 30 вт 06 13 20 27
ср 05 12 19 26 ср 03 10 17 24 31 ср 07 14 21 28
чт 06 13 20 27 чт 04 11 18 25 чт 01 08 15 22 29
пт 07 14 21 28 пт 05 12 19 26 пт 02 09 16 23 30
сб 01 08 15 22 29 сб 06 13 20 27 сб 03 10 17 24
вс 02 09 16 23 30 вс 07 14 21 28 вс 04 11 18 25
июль август сентябрь
пн 03 10 17 24 31 пн 07 14 21 28 пн 04 11 18 25
вт 04 11 18 25 вт 01 08 15 22 29 вт 05 12 19 26
ср 05 12 19 26 ср 02 09 16 23 30 ср 06 13 20 27
чт 06 13 20 27 чт 03 10 17 24 31 чт 07 14 21 28
пт 07 14 21 28 пт 04 11 18 25 пт 01 08 15 22 29
сб 01 08 15 22 29 сб 05 12 19 26 сб 02 09 16 23 30
вс 02 09 16 23 30 вс 06 13 20 27 вс 03 10 17 24
октябрь ноябрь декабрь
пн 02 09 16 23 30 пн 06 13 20 27 пн 04 11 18 25
вт 03 10 17 24 31 вт 07 14 21 28 вт 05 12 19 26
ср 04 11 18 25 ср 01 08 15 22 29 ср 06 13 20 27
чт 05 12 19 26 чт 02 09 16 23 30 чт 07 14 21 28
пт 06 13 20 27 пт 03 10 17 24 пт 01 08 15 22 29
сб 07 14 21 28 сб 04 11 18 25 сб 02 09 16 23 30
вс 01 08 15 22 29 вс 05 12 19 26 вс 03 10 17 24 31
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают