给你一个时间 加几个小时得到准确是时间 考虑月与月和年与年之间的跨度 c语言 获得当前时间程序编写

C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是星期几并输出。_百度知道
C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是星期几并输出。
&c&-&w);&int&&/&if&&==&nbsp,&y;日(空格间隔);w&星期日&(13&&nbsp:&m;*&while&/&nbsp,&c&月&(c&(y&&/&(&.h&gt,&&&d;&}<img class="ikqb_img" src="http,&nbsp,&nbsp.jpg" esrc="=&nbsp.&nbsp://f;&y--.com/zhidao/pic/item/b17eca47e553aa344ad;printf&星期%d&(&||&&100简单;y.+=&nbsp,&nbsp.int&);==&w&5)&%d&else&&&return&100;&=&+&7;&nbsp://f,用蔡勒公式即可;&nbsp
其他类似问题
为您推荐:
其他2条回答
或者其他的一个固定日期你必须确定是星期几,任意的日期是当年的第几天第三实现以下功能。第二:第一任意一年有多少天,可以知道该天比“星期一”大几天。这里比如0年1月1日是星期一,0年1月1日是星期几。直接求出来该日期是星期几即可,2可以知道给定的日期对0年1月一日来说是第几天,根据1。第四。这样直接除以7
#include&&stdio.h&void&main(){&&&&int&y,m,d,c,s,w;&&&&printf(&请输入8位年月日,以空格隔开:&);&&&&scanf(&%d&%d&%d&,&y,&m,&d);&&&&if&(m==1)&c=d;&&&&else&if&(m==2)&c=31+d;&&&&else&if&(m==3)&c=31+28+d;&&&&else&if&(m==4)&c=31+28+31+d;&&&&else&if&(m==5)&c=31+28+31+30+d;&&&&else&if&(m==6)&c=31+28+31+30+31+d;&&&&else&if&(m==7)&c=31+28+31+30+31+30+d;&&&&else&if&(m==8)&c=31+28+31+30+31+30+31+d;&&&&else&if&(m==9)&c=31+28+31+30+31+30+31+31+d;&&&&else&if&(m==10)&c=31+28+31+30+31+30+31+31+30+d;&&&&else&if&(m==11)&c=31+28+31+30+31+30+31+31+30+31+d;&&&&else&if&(m==12)&c=31+28+31+30+31+30+31+31+30+31+30+d;&&&&if&(m&2)&&&&{if&(y%100==0)&{if&(y%400==0)&c=c+1;}&&&&else&if&(y%4==0)&c=c+1;}&&&&s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c;&&&&w=s%7;&&&&switch&(w)&&&&{&&&&case&0:&printf(&星期日&);&&&&case&1:&printf(&星期一&);&&&&case&2:&printf(&星期二&);&&&&case&3:&printf(&星期三&);&&&&case&4:&printf(&星期四&);&&&&case&5:&printf(&星期五&);&&&&case&6:&printf(&星期六&);&&&&&&&&printf(&\n&);&&&&}}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁17 / 45 页
新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
大富大贵, 积分 12403, 距离下一级还需 7597 积分
论坛徽章:2
感谢,感谢!
& & 我对图也很不满意
KBTiller 发表于
或者可以弄个网站做个补充说明或者勘误会,答疑解惑。
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
或者可以弄个网站做个补充说明或者勘误会,答疑解惑。
mirnshi 发表于
& & 这里的老大已经答应可以在CU弄了
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
sagasw网友的阅读笔记
将在github的wiki上做持续更新,这里做个copy
对于C标准库的说明都说是编译器实现,这一点是不准确的,参考维基百科 /C_standard_library
提到一个真正是莫名其妙不知所云的C语言中国国家标准,这是个什么玩意?谭浩强主编的?
primary expression翻译成初等表达式,这个是败笔,难不成还有中等表达式和高等表达式?我建议如果再版,改做“基本表达式”,元表达式也不妥,一般来讲编程中的“元”多从“meta”这个单词产生,如metaprogramming。
page37, printf(&%d\n&, 3); // 0x11f71fb04cb 在little-endian机器上,大部分我们机器,如Intel、AMD,结果都应该是(0x71FB04CB),而在 powerpc的ibook g4 big-endian机器上,结果为287(0x11F)。这个结果是有章可循的。
page38, 应该说明sizeof不会对表达式求值。 sizeof(m++); // m will NOT increase
page62,&后者也是一种错误代码&,感觉提法不容易理解,-& “标准未定义的代码也是应该避免的&。
预处理命令 #definede : typo
注释在编译前被替换成空白字符,这部分待查(gcc,vc)。
page63,风格习惯。命名规范问题,应该用准确的英语做标记。reminder = dividend % better than ys = bcs % CS;
常见错误,/* comment */,一般常见的IDE会有代码着色功能,如VC++会把注释标记为绿色,而大部分编辑器如vim (textmate)也可以做标记着色。
page113,“如果代码中有两个错误,那就不是两倍,而是平方”,这句话意思容易理解,但细看会很别扭,我们假设修改难度为1的话,那么两倍和平方...
page118,typo, lable -& label
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
关于 sagasw网友的阅读笔记 中提到的国家标准
提到一个真正是莫名其妙不知所云的C语言中国国家标准,这是个什么玩意?谭浩强主编的?
这个标准是 GB/T 15272-94 (程序设计语言C)
是1994年由国家技术监督局发布的
实际上是C90的中文翻译本
主要是由金益民(好像是西安电子科技大学的)、孙玉方等几个人弄的
谭浩强是绝对搞不来这种东西的
金益民、孙玉方的C语言书我读过
里面还是有些东西的
孙玉方听说是中科院的
这个人在80年代做了不少C语言的引进和介绍工作
我个人认为孙应该算是国内C语言的先驱之一
(btw:谭的书是91年才出的)
GB/T 15272-94翻译的很粗糙
错误也不少
全然没有标准应有的那种庄严感和权威性
而且远远落后于时代
但考虑到GB/T中的T(推荐)
似乎也拿它没什么办法
权当它不存在好了
也难怪连sagasw这样的C语言资深网友都不怎么知道它
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
本帖最后由 KBTiller 于
22:48 编辑
关于本书191页
“每次运行到auto变量j所在block,会为j寻找存储空间,离开j所在代码模块,j的内存被释放掉。”的讨论
C语言中本地变量local variable的作用域与生存期
6.11.1&&几乎一直是摆设的关键字——auto
auto这个关键字在C语言中一直是个摆设,原因是auto是局部变量的默认修饰。也就是说,如果局部变量前不加任何存储类别说明符,那么这个局部变量就是auto类别的。前面用到的所有局部变量都是auto类别的。
auto类别的局部变量的含义是在用到这个局部变量时,“自动”地为它找个存储空间,离开它的作用范围后,它所占据的空间自动地还给计算机。这里所谓的不再用到是指,这个局部变量所在的代码模块已经被执行完了。当程序再次开始执行auto类别的局部变量所在的代码模块中的代码时,会再次为这个变量寻找一个存储空间,基本上这个空间和上一次它所占据的空间是不一样的,即使一样也毫无意义,因为原来所占据的内存空间既然还给了操作系统,那么里面的内容——原来的值,可能早就面目全非了。
//auto类别局部变量的特点的演示
#include &stdio.h&
int main(void)
{
for(i=0;i&3;i++)
auto int j = 1 ; //这是个auto类别的局部变量,也可以写为 int
j = 1 ;
//每次程序执行到这里时重视为这个变量寻找一个库存出空间
//每次都为这个变量赋一个初值 1
printf(&%d\n&,j);
}
//程序执行到这里后变量j所占据的内存就被释放了
//也可以理解为j已经不存在了,因为它的存储空间可能被挪做它用
system(“Pause”);
return 0;
}
这段程序的运行结果是:
请按任意键继续. . .
这表明了每次运行到j所在的代码模块时,都为j寻找存储空间并且重新为j赋初值1。而且每次离开j所在的代码模块时,j的内存都被释放掉。
形参的性质是一样的,形参也是在被调用时才拥有自己的存储空间,在return时这个空间被释放掉。
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
这里所谓的不再用到是指,这个局部变量所在的代码模块已经被执行完了。
其实这段文字有点问题
“这里所谓的不再用到是指”,这句的前面原来有“不再用到”这个词
但前面的文字修改了
后面的这句“这里所谓的不再用到是指”却没有修改
可能会给人一种莫名其妙的感觉
非常抱歉!
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
这段的文字表述也有问题
我将会换种表达方法
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
本帖最后由 KBTiller 于
10:04 编辑
sagasw网友提到的++部分
5.3.2&&++”之惑
& && &在前面for语句的例句中,i++和i = i + 1所起到的效果是完全相同的,但实际上这两个表达式真正的含义却并不相同。由于++很容易给初学者带来困惑,所以有必要在此详细剖析一下。
1.& && &&&有几种“++”?
& && &一共有两种++运算符。一种++运算符是写在运算对象的后面,如前面小节代码中的i++,另一种++运算符是写在运算对象的前面,例如++i。
& && &写在运算对象后面的++叫后缀加运算符(Postfix increment operator) ;写在运算对象前面的叫前缀加运算符(Prefix increment operators),是个一元运算符。这两种运算符一模一样,但是它们的优先级和结合性却完全不同。前者的优先级是16(最高级别,和函数运算同级),结合性从左到右;而后者的优先级是15(和所有一元运算符相同),结合性从右到左。
& && &这情形和“-”既可以作为减法运算符也可以作为求负值运算符一样。在“5-3”这个表达式中,“-”是减法运算符,优先级为12;而在“-3”这个表达式中,“-”是求负值运算符,优先级为15。编译器可以通过“-”所处的上下文判断出它究竟是哪种运算。代码的编写者更应该清楚两者之间的差别。
& && &在这一点上,很多初学C语言的人都很容易轻率地认为两者是同一个东西。但是,从以上介绍来看,它们两者之间真的是相去甚远。
& && &不过,无论是后缀加还是前缀加,其运算对象都必须是左值表达式(严格地说是可修改的左值表达式)。而所谓的左值表达式,到目前为止我们只见过一种,就是单个变量名构成的初级表达式(也可以在变量名外面加上(),这种写法十分罕见,但含义一样)。
2.& && &&&两种“++”运算符的区别
& && &上面说的是++运算符具有两种不同的意义,那么在实际操作中,两种运算符究竟又有什么不同呢?下面以int类型变量i为例进行介绍。
& && &对于一个int类型变量i,++i的确切含义是求i的值,此外这个运算还有一个“副效应”(Side effects),即是在求i值之前,先将i赋值为i+1。而i++的确切含义同样是求i的值,这个运算也有一个副效应,即是求完i值之后,将i赋值为i+1。
& && &现在核心的问题就出现了。上文中的“求i值之前”和“求完i值之后”,这只是一个时间范围,而并不是一个确切的时间点,因此我们还是不知道到底在何时i会被赋值为i+1。总不能在程序一开始运行的时候就加1吧,要知道那时候变量可能还不存在或者还没定义呢;也总不能等程序运行结束之后再加1吧,那样的副效应还有什么意义呢?
& && &此时,必须借助“序点”(Sequence Point)这个概念才能把这个问题说清。所谓序点,简单地说,序点就是程序执行时一些虚拟的“节点”,这些“节点”对应着代码中一些特定的位置。在这些“节点”之前代码所要求计算机执行的所有动作(包括副效应)必须在这个“节点”处必须完成。由此可见,序点是C语言用于规定或说明运算次序的一个基本概念。就目前为止,我们见过的序点有语句的结束标志“;”或”}”,“?” (问号),“,” (逗号),if语句、while语句、do-while语句及for语句中的()的“)”,for语句“()”中的“;”,此外main()函数的“{”实际上也是一个序点。因此,不难理解,表达式“i++”的真正含义即是,在求得i值之后,下一序点之前,完成i=i+1这个副效应操作(表达式永远是用来求值的,其余的都是副效应)。而表达式“++i”的真正含义是在前一序点之后,求i值之前,完成i=i+1这个副效应操作。同理,“--”运算符也有两个不同的意义,即后缀减运算符和一元前缀减运算符,除了表示在求变量值之后(之前)变量的值需要被减去1之外,其性质和对应的“++”运算符是一致的。此外要说明的是,“++”、“--”(无论是前缀还是后缀)的运算对象可以是任何整数类型、实浮点类型或指针类型。
白手起家, 积分 92, 距离下一级还需 108 积分
论坛徽章:0
& & 我对这段解释的看法是,为了解释++,键盘农夫不得不在一开始就引入更为难懂的概念“左值”“右值”(我对书中这个概念几乎都是跳过),
第一点,C语言中(至少是在K&R中)我没有看到右值的提法,RValue其实是从C++跑来的。
我在今年五月份还试图写博客来解释这个问题, 除了堆砌一些专家的提法,感觉解释的很不成功。
& & 用汇编语言解释是很讨巧的一种方式,但是作为教科书可能没法使用,因为不可移植以及太强的平台、软件依赖。
& & 但是我也不赞同使用用另一个更复杂的概念来解释,这只会让读者更浆糊。如果两者选择,我倾向于使用汇编。
& & 前缀型++和后缀型++相对在C语言中的应用并不广泛,如果不在表达式中使用,它们基本上是一样的。而我个人也不建议++混在在其他表达式中,比如函数调用作为参数传入也好,作为赋值表达式出现也罢,都有极强的破坏性和副作用,最好的规则就是,++只要单独运行,无论前后。
大富大贵, 积分 10355, 距离下一级还需 9645 积分
论坛徽章:0
本帖最后由 KBTiller 于
11:43 编辑
回复&&KBTiller
& & 我对这段解释的看法是,为了解释++,键盘农夫不得不在一开始就引入更为难懂的概念 ...
sagasw 发表于
& & 首先,我对sagasw网友认真地阅读拙著表示感谢(也许,按照sagasw的风格,应该先谢国家)
& & 其次,对sagasw网友对拙著的推介()表示感谢。(说心里话,确实还感到有些惶恐)
& & 第三,作为我个人,我更加感谢sagasw网友不辞辛苦、用了大量个人时间和精力对拙著提出的批评意见。这些意见,无论是我现在就接受的还是将来我可能接受的,对于我来说都是无比珍贵的。我为拙著能得遇这样一位对技术精益求精的方家读者而感到庆幸。
& & 写书的一个难点是不容易确定读者知道什么不知道什么,尤其是对这样一本读者区间跨度很大的书来说,更是如此。这是我写作过程中的一个体会。我愿意在此披露一下当时这样处理的考虑,欢迎大家评议。
& & 左值的概念,在我看来是至关重要的,是真正理解C的前提。从指针那章来看,不理解左值几乎就无法读下去。
& & 而且我认为左值这个概念恰恰是多数书籍没有真正讲清楚的,这就是为什么多数人学不好C语言的原因之一。
& & 至于放在何处介绍,我认为是越早越好(当然前面可以浅释,后面应该更严谨全面)。因为如果不了解左值这个概念,我觉得
&&int i=6;
i = i + 2 ;复制代码
& &连“i = i + 2”这样的表达式都无法真正彻底地讲清楚。事实上这个表达式中的两个 “i” 的含义明显是不同的。
17 / 45 页君,已阅读到文档的结尾了呢~~
2014年6月二级c福建省考题&#40;含答案&#41;
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
2014年6月二级c福建省考题&#40;含答案&#41;
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口C语言中time(NULL)函数得到的时间距离日0时0分0秒少8小时? — 编程爱好者社区
主题:C语言中time(NULL)函数得到的时间距离日0时0分0秒少8小时?
[专家分:210]
我做的方法将time(NULL)得到的时间和笔算的时间相差8小时希望谁能指点一下,因为我要把时间同步到硬件里,对这个时间概念不清楚
本帖地址:&
回复列表 (共2个回复)
[专家分:1980]
肯定是你笔算错了呗!time取的时间是主板固化时钟的数字!
[专家分:42660]
time_t存储的是UTC时间,你应该考虑到时差。
您尚未登录,请登录后再回复。求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几。会的大神求解_百度知道
求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几。会的大神求解
提问者采纳
我写过一个程序,输入日期能显示出是星期几,我把代码给你,你先给我采纳,我下午四点帮你写,现在没时间。//输入日期&能知道是星期几。#include&stdio.h&int&run(int&n,int&y,int&r);//润平年判断与计算函数,结果为,此日期为当年的第几天。int&js(int&n,int&m);//计算函数,计算n1年与n2年之间整年的天数。int&main(){&&&&int&n1,y1,r1,s1,s2;&&&&printf(&请出入年份:&);&&&&&&&&&&&&scanf(&%d&,&n1);&&&&printf(&\n&);&&&&printf(&请出入月份(1~12):&);&&&&scanf(&%d&,&y1);&&&&printf(&\n&);&&&&printf(&请出入号数(1~31):&);&&&&scanf(&%d&,&r1);&&&&printf(&\n&);&&&&s1&=&run(n1,y1,r1);&&&&s2&=&js(n1,0);&&&&switch((s1+s2)%7)&&&&{&&&&case&0:printf(&星期6\n&);&&&&case&1:printf(&星期7\n&);&&&&case&2:printf(&星期1\n&);&&&&case&3:printf(&星期2\n&);&&&&case&4:printf(&星期3\n&);&&&&case&5:printf(&星期4\n&);&&&&case&6:printf(&星期5\n&);&&&&default:&&&&}}int&run(int&n,int&y,int&r){&&&&int&run=0;&&&&int&sum=0;&&&&int&N[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年数组。&&&&int&i;&&n订紶斥咳俪纠筹穴船膜&&if(n%4==0&&n%100!=0||n%400==0){run=1;}//闰年的条件。&&&&if(run)&N[1]=29;//闰年二月29天。&&&&&&&&for(i=0;i&y-1;i++){&&&&&&&&sum&=&sum+N[i];//到y月前,此年经过了多少天。&&&&}&&&&sum&=&sum&+&r;//总天数。&&&&return&}int&js(int&n,int&m){&&&&int&i,a=0,sum=0;&&&&for(i=n-2;i&=m;i--){&&&&&&&&if(i%4==0&&i%100!=0||i%400==0){&&&&&&&&&&&&a=366;&&&&&&&&}else&a=365;&&&&&&&&sum&=&sum&+&a;&&&&}&&&&return&}
你先帮了我才, 加悬赏也可以
#include&stdio.h&int run(int n, int y, int r);&#47;&#47;润平年判断与计算函数,结果为,此日期为当年的第几天。int js(int n, int m);&#47;&#47;计算函数,计算n1年与n2年之间整年的天数。int main(){
int n1, s1, s2;
int i,j,k,m;
int N[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };&#47;&#47;平年数组。
printf(&请出入年份:&);
scanf(&%d&, &n1);
printf(&&#92;n&);
if ((n1 % 4 == 0 && n1 % 100 != 0 )|| n1 % 400 == 0) N[1] = 29;
for (i = 1; i &= 12; i++)
printf(&&#92;t***************%d 月*******************&#92;n&, i);
printf(&周一&#92;t周二&#92;t周三&#92;t周四&#92;t周五&#92;t周六&#92;t周日&#92;t&#92;n&);
for (j = 1; j &= N[i-1]; j++)
if(j == 1)
s1 = run(n1, i, 1);
s2 = js(n1, 0);
switch ((s1 + s2) % 7)
case 0:for (k = 0; k & 5; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 8;
case 1:for (k = 0; k & 6; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 7;
case 2: printf(&%d&#92;t&,j); m = 2;
case 3:for (k = 0; k & 1; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 3;
case 4:for (k = 0; k & 2; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 4;
case 5:for (k = 0; k & 3; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 5;
case 6:for (k = 0; k & 4; k++) printf(&&#92;t&); printf(&%d&#92;t&,j); m = 6;
printf(&%d&#92;t&, j);
不行,这个它字数限制
你加我QQ。我发完整的给你
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
万年历的相关知识
其他1条回答
你好,显示格式有要求吗
没有,就像平时我们看日历嘞个就好
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言 获得当前时间 的文章

 

随机推荐