用fortran 计算时间写的计算某一年几月几号是这一年的第几天

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 4831|回复: 7
主题帖子精华0积分190C币179 枚在线时间11 小时注册时间最后登录性别男居住地陕西省&宝鸡市
高级程序员 Lv.2, 积分 190, 距离下一级还需 66 积分
主题帖子C币179 枚在线时间11 小时
/*
输入年月日,判断这一天是这一年中的第几天!
*/
#include &stdio.h&
#define BISSEXTILE& & ( ((year%4 == 0) && (year%100 !=0) ) || (year%400==0) )
main(){
& & & & int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
& & & & int year=0,month=0,day=0;
& & & & int i=0,sum=0;
& & & & printf(&请输入年月日:(如)&);
& & & & scanf(&%d-%d-%d&,&year,&month,&day);
& & & & if (BISSEXTILE){
& & & & & & & & for(i=0;i&(month-1);i++){
& & & & & & & & & & & & sum+=a[i];
& & & & & & & & }
& & & & & & & & if(month&3){
& & & & & & & & & & & & printf(&%d\n&,sum+day);
& & & & & & & & }
& & & & & & & & else {
& & & & & & & & & & & & printf(&%d\n&,sum+1+day);
& & & & & & & & }
& & & & }
& & & & else {
& & & & & & & & for(i=0;i&(month-1);i++){
& & & & & & & & & & & & sum+=a[i];
& & & & & & & & }
& & & & & & & & printf(&%d\n&,sum+day);
& & & & }
}复制代码
很多我们以为一辈子都不会忘记的事,就在我们念念不忘的日子里给忘记了&&喜欢交朋友的可以加我QQ
主题帖子精华0积分138C币123 枚在线时间15 小时注册时间最后登录性别女居住地重庆市&潼南县
高级程序员 Lv.2, 积分 138, 距离下一级还需 118 积分
主题帖子C币123 枚在线时间15 小时
#include&stdio.h&
void main()
{
&&int day,month,year,sum,
&&printf(&\nplease input year,month,day\n&);
scanf(&%d,%d,%d&,&year,&month,&day);
switch(month)
{
& &case 1:sum=0;
& &case 2:sum=31;
& &case 3:sum=59:
& &case 4:sum=90;
& &case 5:sum=120;
& &case 6:sum=151;break:
& &case 7:sum=182;
& &case 8;sum=212;
& &case 9:sum=243;
& &case 10:sum=173;
& &case 11:sum=304;break:
& &case 12:sum=334;
& &default:printf(&month date error&);
}
&&sum=sum+
&&if(year%400==0||(year%4==0&&year%100!=0))
& &&&leap=1;
else
& &&&leap=0;
if(leap==1 && month&2)
& && &sum++;
& && &printf(&It is the %dth day of the year.\n&,sum);
}复制代码对于一个任意的日期,应该先把他的月数的天数加起来,再加上他的天数即本年的第几天,遇到闰年的情况,且输入的月份大于3时需要多加一天;在这里使用switch语句按输入的月份,将该月份之前的总天数计入sum,例如:若输入的月份是3,即3月,则switch语句执行case 3:sum=59;即一二月的天数之和为59,二月按28天算,并根据闰年的判断,做出相应的调整。
是金子总会发光.......
主题帖子精华0积分42C币41 枚在线时间1 小时注册时间最后登录性别保密
新人 Lv.0, 积分 42, 距离下一级还需 22 积分
主题帖子C币41 枚在线时间1 小时
你的这个程序我粘贴了下运行试了下可以啊
主题帖子精华0积分754C币692 枚在线时间62 小时注册时间最后登录性别保密
资深专家 Lv.4, 积分 754, 距离下一级还需 270 积分
主题帖子C币692 枚在线时间62 小时
#include &stdio.h&
#define lev(n) (n%4==0&&n%100!=0||n%400==0)
int main()
{
& & int y,m,d,i,s;
& & int month[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
& && && && && && && & {0,31,29,31,30,31,30,31,31,30,31,30,31}};
& & while(scanf(&%d/%d/%d&,&y,&m,&d)!=EOF)
& & {
& && &&&for(s=0,i=1;i&m;i++)
& && && && &s+=month[lev(y)][i];
& && &&&s+=d;
& && &&&printf(&%d\n&,s);
& & }
& & return 0;
}复制代码
主题帖子精华0积分190C币179 枚在线时间11 小时注册时间最后登录性别男居住地陕西省&宝鸡市
高级程序员 Lv.2, 积分 190, 距离下一级还需 66 积分
主题帖子C币179 枚在线时间11 小时
<font color="#love文武贝 发表于
你的这个程序我粘贴了下运行试了下可以啊
那是必须的,嘿嘿
很多我们以为一辈子都不会忘记的事,就在我们念念不忘的日子里给忘记了&&喜欢交朋友的可以加我QQ
主题帖子精华0积分190C币179 枚在线时间11 小时注册时间最后登录性别男居住地陕西省&宝鸡市
高级程序员 Lv.2, 积分 190, 距离下一级还需 66 积分
主题帖子C币179 枚在线时间11 小时
载载看 发表于
这这样写,比我的要好!
很多我们以为一辈子都不会忘记的事,就在我们念念不忘的日子里给忘记了&&喜欢交朋友的可以加我QQ
主题帖子精华0积分190C币179 枚在线时间11 小时注册时间最后登录性别男居住地陕西省&宝鸡市
高级程序员 Lv.2, 积分 190, 距离下一级还需 66 积分
主题帖子C币179 枚在线时间11 小时
小手指 发表于
对于一个任意的日期,应该先把他的月数的天数加起来,再加上他的天数即本年的第几天,遇到闰年的情况,且输 ...
这样写不太好,用二维数组来做确实要好点
很多我们以为一辈子都不会忘记的事,就在我们念念不忘的日子里给忘记了&&喜欢交朋友的可以加我QQ
主题帖子精华0积分138C币123 枚在线时间15 小时注册时间最后登录性别女居住地重庆市&潼南县
高级程序员 Lv.2, 积分 138, 距离下一级还需 118 积分
主题帖子C币123 枚在线时间15 小时
jianchixiaqu 发表于
这样写不太好,用二维数组来做确实要好点
复杂是复杂了点,不过我是学习到 switch 语句,所以才专门用它来写的,欢迎指出缺点.......
是金子总会发光.......
( 粤ICP备号-2 )下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
给定某个年月日,计算出这天属于该年的第几天.要就写出计算闰年的函数和计算日期函数.用C++
繁华落幕38
bool IsLeapYear(int nYear){if (0 > nYear)if (nYear%100 == 0){//400return (nYear%400 == 0);}return (nYear%4 == 0);}int GetNormalIndex(int nMonth,int nDay){int nRet = nDif (nMonth > 1)nRet += 31;if (nMonth > 2)nRet += 28;if (nMonth > 3)nRet += 31;if (nMonth > 4)nRet += 30;if (nMonth > 5)nRet += 31; if (nMonth > 6)nRet += 30;if (nMonth > 7)nRet += 31;if (nMonth > 8)nRet += 31;if (nMonth > 9)nRet += 30;if (nMonth > 10)nRet += 31;if (nMonth > 11)nRet += 30;return nR}int GetDayIndex(int nYear,int nMonth,int nDay){bool bIsLeapYear = IsLeapYear(nYear);int nRet = GetNormalIndex(nMonth,nDay);return bIsLeapYear?nRet+1:nR}
为您推荐:
其他类似问题
扫描下载二维码编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0&repeat&10),做 repeat
次下列运算:
编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。
要求定义并调用函数 day_of_year(p)
计算某日是该年的第几天,函数形参p的类型是结构指针,指向表示日期的结构变量,函数类型是int,注意区分闰年。
输入输出示例:括号内为说明
(repeat=2)
2006& 3& 5
2000& 3& 5
(日是该年的第64天)
(日是该年的第65天)
#include &stdio.h&
struct date{
int day_of_year(struct date *p);
int main(void)
&&& int repeat,
&&& struct date
scanf("%d", &repeat);
&&& for(ri = 1;
ri &= ri++){
scanf("%d%d%d", &date.year,
&date.month, &date.day);
printf("%d\n", yearday);
#include &stdio.h&
struct date{
int day_of_year(struct date *p);
int main(void)
&&& int repeat,
&struct date date,*p;
scanf("%d", &repeat);
&&& for(ri = 1;
ri &= ri++){
&&scanf("%d%d%d",
&date.year, &date.month,
&date.day);
&&yearday=day_of_year(p);
&&printf("%d\n", yearday);
int day_of_year(struct date *p)
i,j,yearday,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}&&
if(p-&year%4==0&&p-&year0!=0||p-&year@0==0)
& a[2]=29;
& yearday=p-&
for(i=1;i&p-&i++)
& yearday+=a[i];
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 fortran并行计算程序 的文章

 

随机推荐