大家好,今天小编关注到一个比较有意思的话题,就是关于c语言求星期的问题,于是小编就整理了3个相关介绍c语言求星期的解答,让我们一起看看吧。
C语言编程序如下功能:输入任意一个日期的年、月、日的值,求出是星期几并输出?
#include<stdio.h>
//公式是year +(year/4)+(century/4)-2*century+(26*(month+1)/10)+day-1,然后对7求余
voidmain()
{
intyear,w;
charweek[7][8]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
scanf("%d",&year);
w=(year+(year/4)+(year/100/4)-2*(year/100)+(26*2/10))%7;
printf("%s",week[w]);
}
如何计算星期几的简单公式?
可以用最著名的是蔡勒(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,则为星期日。
C语言中如何获取当前系统时间的小时?
程序主要通过当前系统日历的struct tm结构体获得,主要代码如下,#include <stdio.h>#include <time.h> //程序功能输出当前时间在24H下的小时数 int main(int argc, char *argv[]){ struct tm *ptr; time_t lt; time(<);//当前系统时间 ptr=localtime(<);//获取本地日历时间指针 printf("hour=%d(24H )\n",ptr->tm_hour);//输出24H下的小时数 return 0;}结构体tm定义如下,struct tm {int tm_sec; /* 秒–取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */int tm_year; /* 年份,其值从1900开始 */int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/long int tm_gmtoff; /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/const char *tm_zone; /*当前时区的名字(与环境变量TZ有关)*/};
到此,以上就是小编对于c语言求星期的问题就介绍到这了,希望介绍关于c语言求星期的3点解答对大家有用。