| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5169 人关注过本帖
标题:输入某年某月某日,判断这一天是这一年的第几天
只看楼主 加入收藏
ahu202
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-4-6
收藏
 问题点数:0 回复次数:7 
输入某年某月某日,判断这一天是这一年的第几天
输入某年某月某日,判断这一天是这一年的第几天
搜索更多相关主题的帖子: 判断 输入 
2006-04-06 23:19
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 

版内有好几篇,自己找一下。


2006-04-07 08:15
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
这个应该是用个SWITCH语句,我就是这么写的.

I am a programmer !
2006-04-08 22:20
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
得分:0 

看看:

#include<stdio.h>

/* year是否为闰年 */
int leapyear(int year)
{
if( (year%4==0 && year%100!=0) || year%400==0 )
return 1;
else
return 0;
}

/* 求某年某月某日是该年的第几天 */
int dayindex(int year,int month,int day)
{
int days=0,d;
int i;

for(i=1;i<month;i++)
{
switch(i)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
d=31;break;
case 4:case 6:case 9:case 11:
d=30;break;
case 2:
if(leapyear(year))
d=29;
else
d=28;
break;
}
days+=d;
}
days+=day;

return days;
}

int main( )
{
int T,k;
int year,month,day;
int i;
int daysum;
int flag;

scanf("%d",&T);
for(k=0;k<T;k++)
{
/* 输入年,月,日 */
scanf("%d-%d-%d",&year,&month,&day);
/* 看看你有没有18岁的生日:只有出生在闰年2月29日并且过18年后不是闰年*/
flag=1;
if( leapyear(year)==1 && month==2 && day==29 && leapyear(year+18)==0 )
flag=0;
else
{
/* 求该年后第一年至18岁生日前以前所经历的天数 */
daysum=0;
for(i=year+1;i<year+18;i++)
{
daysum+=365;
if(leapyear(i))
daysum++;
}

/* 总的天数要加上出生那年所剩天数和18岁那年多活的天数 */
if(leapyear(year))
daysum+=(366-dayindex(year,month,day));
else
daysum+=(365-dayindex(year,month,day));
daysum+=dayindex(year+18,month,day);
}
if(flag)
{
/* 输出到18岁生日那天你所经历的天数,好好珍惜时间哦 */
printf("%d\n",daysum);
}
else
printf("-1\n");
}

return 0;
}


太极之道 qq:283421560 E-mail:zhangzujin360732@
2006-04-08 22:37
zhangzujin
Rank: 1
等 级:新手上路
帖 子:276
专家分:0
注 册:2005-5-9
收藏
得分:0 

看看你到你18岁生日那天经历了多少天!


太极之道 qq:283421560 E-mail:zhangzujin360732@
2006-04-08 22:38
午夜小学徒
Rank: 2
等 级:论坛游民
威 望:3
帖 子:52
专家分:40
注 册:2014-7-17
收藏
得分:0 
回复 4 楼 zhangzujin
大哥,你是用的什么环境啊?
2014-07-17 22:27
午夜小学徒
Rank: 2
等 级:论坛游民
威 望:3
帖 子:52
专家分:40
注 册:2014-7-17
收藏
得分:0 
/*int year = 0,month = 0,day = 0,number = 0;
    printf("Enter Year:");
    scanf_s("%d",&year);     
    printf("Enter Month:");
    scanf_s("%d",&month);
    printf("Enter Day:");
    scanf_s("%d",&day);

    switch (month)
    {
    case 12:
        number += 30;
    case 11:
        number += 31;
    case 10:
        number += 30;
    case 9:
        number += 31;
    case 8:
        number += 31;
    case 7:
        number += 30;
    case 6:
        number += 31;
    case 5:
        number += 30;
    case 4:
        number += 31;
    case 3:
        number += 28;
    case 2:
        number += 31;
    default:
        if (year%400==0 || (year%4==0&&year%100!=0))
        {
            if(month > 2)
            {
                number += 1;
            }
        }
        printf("The number is: %d",number + day);
        break;
    }*/
2014-07-17 22:28
午夜小学徒
Rank: 2
等 级:论坛游民
威 望:3
帖 子:52
专家分:40
注 册:2014-7-17
收藏
得分:0 
我用的VS2012中的C++开发环境
2014-07-17 22:29
快速回复:输入某年某月某日,判断这一天是这一年的第几天
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018582 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved