c语言 给日期出星期几,新手做的日历表及查找日期是星期几

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include void ff(char c, int n); //星号函数

int weekn(int yeah); //返回年份的一月一日是星期几

bool yeah_run(int yeah); //判断是否是闰年

int chariqi(int mon[12], int yeah, int yue, int ri); //查找日期函数

char xingqi(int xin); //查找日期是星期几 int main (void)

{

while(1){

int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int i,j, n=0, week;

int yeah, yue, ri;

puts("请输入需要打印的年份(不要早于1980年)");

scanf("%d", &yeah); system("cls");

if(yeah_run(yeah))

mon[1] = 29;

week = weekn(yeah);

ff('*', 18);

printf("%d年年历", yeah);

ff('*', 18);

putch('\n'); for(j=0; j<12; j++)

{

n=0;

putch('\n');

ff('*', 20);

printf("第%d月", j+1);

ff('*', 20);

puts("\n");

puts("星期日 星期一 星期二 星期三 星期四 星期五 星期六");

while(n

{

if(7==week)

{

week=0;

break;

}

printf(" ");

n++;

}

for(i=0; i

{

if(7==week)

{

putch('\n');

week = 0;

}

printf("%-7d", i+1);

week++;

}

}

puts("\n");

do

{

puts("请输入需要查找的月份");

scanf("%d", &yue);

puts("请输入需要查找的日期");

scanf("%d", &ri);

if(yue>12 || ri >mon[yue-1])

{

puts("您输入的日期有误,请重新输入");

}

else

break;

}

while(1);

printf("您需要查的日期是:\n%d年%d月%d日\t", yeah, yue, ri);

switch(chariqi(mon, yeah, yue, ri))

{

case 0: puts("星期日"); break;

case 1: puts("星期一"); break;

case 2: puts("星期二"); break;

case 3: puts("星期三"); break;

case 4: puts("星期四"); break;

case 5: puts("星期五"); break;

case 6: puts("星期六"); break;

default : break;

}

while(getchar()!='\n')

continue;

getch();

system("cls");

}

return 0;

}

void ff(char c, int n)

{

int i=0;

while(i

{

printf("%c", c);

i++;

}

return ;

}

int weekn(int yeah)

{

int sum =0;

int i,j;

i = yeah - 1980;

if(0==i)

return 2; j = (i-1) / 4 +1;

return (i*365+j+2)%7;

}

bool yeah_run(int yeah)

{

if(0==yeah%4 && 0!=yeah%100 || 0==yeah%400)

return true;

else

return false;

}

int chariqi(int mon[12], int yeah, int yue, int ri)

{

int duoyutian = weekn(yeah);

int i, j, sum =0;

if(yeah_run(yeah))

{

mon[1]=29;

}

for(i=0; i

sum = sum + mon[i];

sum = sum + ri +duoyutian; return sum%7-1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言根据日期星期是一种常见的功能需求,在北京理工大学的计算机科学与技术领域也是一个重要的课题。其实,实现这个功能的方法有很多种。我来为您简要介绍一下其中的一种方法。 首先,我们需要明确一个基本的概念,即星期几是通过日期来计算得的,而不是直接存储的。在C语言中,星期几通常用0-6表示,0代表星期日,1代表星期一,依此类推,6代表星期六。 要根据日期星期,我们首先需要获取当前日期的年、月、日信息。可以利用C语言中的时间相关函数(如time.h库中的localtime函数)来获取当前日期。之后,我们可以根据公式`weekday = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7`来计算当前日期对应的星期几。 举例来说,如果我们想要计算2022年10月1日是星期几,我们首先得到年(2022)、月(10)、日(1)的数值。然后,根据上述公式进行相应的运算,最后得到的结果就是星期几的数值。在本例中,运算结果为6,即星期六。 总结起来,C语言可以根据日期星期的方法是获取当前日期的年、月、日信息,然后根据相应的公式进行计算。这样,我们就可以方便地利用C语言实现这一功能。北京理工大学的计算机科学与技术领域也在研究和教学方面积极探索相关内容,以提高学生的编程能力和解决实际问题的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值