这两天一直在写如何输入月份将今年那个月份在电脑上打印出来,其中有很大一部分是参考(其实就是照着抄来的)只有最后打印与排版一部分是我自己写的,这次也算稍微复习了一下switch语句和for语句。https://blog.csdn.net/nfvision/article/details/114054320
上面这个是我参考的代码来源。
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <conio.h>
int leapyear(int y)
{
int r = 0;
if (y % 100 == 0)
{
if (y % 400 == 0)r = 1;
else r = 0;
}
else
{
if (y % 4 == 0)r = 1;
else r = 0;
}
return r;
}
long firstdayofyear(int y)
{
long n;
int i = 1;
n = y * 365;
for (i = 1; i < y; i++)
{
if (leapyear(i))n += 1;
}
return n %= 7;
}
int main()
{
int year;
char szCurrentDateTime[32];
time_t nowtime;
struct tm ptm;
int monthdays[12];
int isleapyear;
int diyitianxingqiji;
time(&nowtime);
localtime_s(&ptm, &nowtime);
sprintf_s(szCurrentDateTime, "M-%.2d-%.2d%.2d:%.2d:%.2d",
ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday,
ptm.tm_hour, ptm.tm_min, ptm.tm_sec);
year = ptm.tm_year + 1900;
isleapyear = leapyear(year);
diyitianxingqiji = firstdayofyear(year);
printf("%d\n", diyitianxingqiji);
for (int i = 0; i < 12; i++)
{
switch (i)
{
case 0:monthdays[i] = 31;
break;
case 1:if (isleapyear==1)monthdays[i]=29;
else monthdays[i] = 28;
break;
case 2:monthdays[i] = 31;
break;
case 3:monthdays[i] = 30;
break;
case 4:monthdays[i] = 31;
break;
case 5:monthdays[i] = 30;
break;
case 6:monthdays[i] = 31;
break;
case 7:monthdays[i] = 31;
break;
case 8:monthdays[i] = 30;
break;
case 9:monthdays[i] = 31;
break;
case 10:monthdays[i] = 30;
break;
case 11:monthdays[i] = 31;
break;
}
}
int dijimonth=0;
printf("请输入月份");
int ztch = 365;
if (isleapyear == 1)ztch = 366;
if (dijimonth < 1 || dijimonth>12)
{
printf("err input\n");
exit(0);
}
int monthx = 0;
int benyuediyitian = 0;
int sum = 0;
int oldsum = 0;
int i ;
printf(" 日 一 二 三 四 五 六");
printf("\n");
for (i = 0; i < dijimonth-1; i++)
{
sum = sum + monthdays[i];
}
benyuediyitian = (diyitianxingqiji + sum) % 7;
int kongge = 0;
int hang = 0;
int tian = 0;
for (kongge = 0; kongge < benyuediyitian; kongge++)
{
printf(" ");
hang = hang + 2;
}
for (tian = 1; tian < monthdays[dijimonth-1]+1; tian++)
{
printf(" %2d", tian);
hang = hang + 2;
if (hang % 14 == 0)
printf("\n");
}
}