当前位置:首页 » 编程语言 » c语言输入日期输出星期
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输入日期输出星期

发布时间: 2023-06-17 22:44:32

c语言程序,输入年月日算出当天星期几

先做一个函数,计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出。

具体代码如下:

#include<stdio.h>
#include<stdlib.h>

intDay(inty,intm,intd);

intmain(intargc,char*argv[]){
inti;//循环变量
intyear,month,day;//读取用户输入的年月日
intdays;//储存从1900-1-1到该天的天数
intweek=0;//储存求余后的星期
//字符串组合输出星期
charb[]={"星期"};
charc[7][4]={"日","一","二","三","四","五","六"};

loop:printf("请输入年月日:(空格分隔) ");
scanf("%d%d%d",&year,&month,&day);
days=Day(year,month,day);
//增强程序的健壮性
if(days==-1)
{
printf("输入格式有误,");
fflush(stdin);//防止用户输入字母等其他非数字字符
gotoloop;
}
else
{
week=days%7;//用求余计算星期几
printf("%d年%d月%d日是%s%s ",year,month,day,b,c[week]);
}
system("pause");
return0;
}

//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法
intDay(inty,intm,intd)
{
inti;
intr=0;//储存1900到该天的闰年个数
inta[]={31,28,31,30,31,30,31,31,30,31,30};//m给每出月的天数

if(y>=1900&&m>0&&m<13&&d>0&&d<32)
{
for(i=1900;i<=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0&&i%4==0)
r++;
}
for(i=0;i<m-1;i++)//统计当年1月1日到当月的天数
{
d+=a[i];
}
if((y%400==0||y%100!=0&&y%4==0)&&m<3)//如果当年是闰年但不到二月就不能算进去
r--;
return365*(y-1900)+r+d;
}
else
return-1;
}

Ⅱ C语言;输入任意年月日,得出周几

#include"stdio.h"
struct Date
{
int year;
int month;
int day;
};

int f(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 366;
else return 365;
}

int isleap(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 1;
else return 0;
}

int s(int a,int b,int c,int d,int year)
{
int array[2][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 cha=0,i;
if(a<c||a==c&&b<d)
{
for(i=a;i<c;i++)
cha+=array[isleap(year)][i-1];
cha+=d-b;
return cha;
}
else
{
for(i=c;i<a;i++)
cha+=array[isleap(year)][i-1];
cha+=b-d;
return -cha;
}
}
int tianshu(struct Date a,struct Date b)//计算两个日期相差的天数
{
int i,tian=0;
if(a.year<b.year)
{
for(i=a.year;i<b.year;i++)
tian+=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
else
{
for(i=a.year;i<b.year;i++)
tian-=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
return tian;
}
void jieguo(int a)
{
if(a==0) printf("这一天是星期天\n");
if(a==1) printf("这一天是星期一\n");
if(a==2) printf("这一天是星期二\n");
if(a==3) printf("这一天是星期三\n");
if(a==4) printf("这一天是星期四\n");
if(a==5) printf("这一天是星期五\n");
if(a==6) printf("这一天是星期六\n");
if(a==7) printf("这一天是星期天\n");
}

int main()
{
int tian;
struct Date now={2009,4,12};//选择一天作为基准
struct Date chaxun;
printf("请输入你想查询的日期\n");
scanf("%d%d%d",&chaxun.year,&chaxun.month,&chaxun.day);
tian=tianshu(now,chaxun);
if(tian>=0)
{
jieguo(tian%7);
}
else
{
jieguo(7-((-tian)%7));
}
return 0;
}

Ⅲ c语言知道日期 算星期几

这个是用于计算是周几的公式
参见下链第一个公式
http://hi..com/greation/item/4e9615dedba8c94fdcf9be51
不过这个代码写的有点问题,应该是取整的
我个人比较喜欢用蔡勒公式或基姆拉尔森公式

Ⅳ c语言给一个日期求星期几

#include<stdio.h>
voidmain(){
intdate;
charweek[7][3]={"六","天","一","二","三","四","五"};
scanf("%d",&date);
if(date>=1&&date<=30)
{
date-=11;
while(date<0)date+=7;
printf("星期%s",week[date%7]);
}
elseprintf("输入日期有误!");
}
//运行示例:

Ⅳ c语言知道日期求星期

这是根据蔡勒(Zeller)公式。
即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义册橡信如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份如辩后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值)
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日.
以2049年州轮10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1 =49+[12.25]+5-40+[28.6] =49+12+5-40+28 =54 (除以7余5) 即2049年10月1日(100周年国庆)是星期5。

Ⅵ c语言函数输入xxxxxxxx日期date,计算当天是星期几

#include <stdio.h>

#include <time.h>

int main() {

int year, month, day;

printf("Enter a date (yyyy-mm-dd): ");

scanf("%d-%d-%d", &year, &month, &握裂day);

struct tm tm = {0};

tm.tm_year = year - 1900;

tm.tm_mon = month - 1;

tm.tm_mday = day;

tm.tm_isdst = -1;

time_t t = mktime(&tm);

char* weekday[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

printf("%s ", weekday[localtime(&巧咐t)->tm_wday]);

return 0;

}

在这段代码中,使用了 time 库中的 mktime 函数和 localtime 函数来将日期转换为时间戳,并使用 tm_wday 字段来计算日期是孝皮纯星期几。

Ⅶ 用c语言输入日期输出星期几

#include<stdio.h>

intmain(intargc,charconst*argv[])
{
intdata;
scanf("%d",&data);
printf("星期%d ",(data+1)%7+1);
return0;
}

Ⅷ C语言程序,输入年月日算出当天星期几

似乎是有时间函数,看看说明
其实弄个语言,主要的是使用中间的函数、工具、各种包,
语言本身比较简单,相对的,而那是不够的,
那些函数,也不都是语言本身写的,