24小时热门版块排行榜    

查看: 1034  |  回复: 3
本帖产生 2 个 程序强帖 ,点击这里进行查看

微尘、梦想

木虫 (知名作家)

[交流] 再来一道,求某日是某年的第几天 已有2人参与

RT
要求:
要能判断输入日期是否正确,比如说输入2011 5 32号,要给出错误信息
要注意闰年与非闰年的区别

延伸:如果输入出生年月日,及现在的日期,求出你已经来到这世上多少天了……

说明:这算两道题,可以任选一个,也可以把这两道题写在一个程序里面!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

任风云变幻,我笑对人生!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gghgbsl8768

铜虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
#include"stdio.h"
#include"time.h"
#include"windows.h"

struct ti
{
        int year;
        int month;
        int day;
        int hour;
        int min;
        int second;
};
void judgment(struct ti m)
{
if(m.month>12||m.month<0)
{
         printf("您输入的月份有误,请重新输入";
        // system("cls";
         setBeginDateTime();
         setEndDate();
}
else if(m.day<0||m.day>31)
{
         printf("您输入的日期有误,请重新输入";
         //system("cls";
          setBeginDateTime();
          setEndDate();
}
else if(m.hour<0||m.hour>24)
         {
         printf("您输入的小时有误,请重新输入";
         //system("cls";
          setBeginDateTime();
          setEndDate();
}
else if(m.min<0||m.min>60||m.second>60||m.second<0)
         {
          printf("您输入的分或秒有误,请重新输入";
          //system("cls";
          setBeginDateTime();
          setEndDate();
}
}

int yearday(int year,int monty,int day)
{
        int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int flag,sum=0;
        printf("请输入年月日:";
        scanf("%d,%d,%d",&year,&mon,&day);
        flag=(year%400==0)||(year%4==0&&year%100!=0);
                if(flag==1)
                {
                        a[2]++;
                 }
                       
               
        switch(mon)
                {
                case 1:
                        sum=sum+a[0]+day;
                        break;
                case 2:
                        sum=sum+a[1]+day;
                        break;
                case 3:
                        sum=sum+a[2]+day;
                        break;
                case 4:
                        sum=sum+a[3]+day;
                        break;
                case 5:
                        sum=sum+a[4]+day;
                        break;
                case 6:
                        sum=sum+a[5]+day;
                        break;
                case 7:
                        sum=sum+a[6]+day;
                        break;
                case 8:
                        sum=sum+a[7]+day;
                        break;
                case 9:
                        sum=sum+a[8]+day;
                        break;
                case 10:
                        sum=sum+a[9]+day;
                        break;
                case 11:
                        sum=sum+a[10]+day;
                        break;
                case 12:
                        sum=sum+a[11]+day;
                        break;
                       
                }
                    return sum;
                                               
        }
void main()
{
   int y,m,d;
  scanf("%d,%d,%d",&y,&m,&d);
yearday(y,m,d);

}
2楼2011-05-10 23:06:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gghgbsl8768

铜虫 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3): 欢迎参与活动! 2011-05-11 23:00:42
余泽成(程序强帖+1): 2011-05-13 21:19:48
不好意思,刚开始写错了


#include"stdio.h"
#include"time.h"
#include"windows.h"

struct ti
{
        int year;
        int month;
        int day;
        int hour;
        int min;
        int second;
};
void judgment(struct ti);

int yearday(struct ti yea)
{
        int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int flag,sum=0;
        printf("请输入年,月,日:";
        scanf("%d,%d,%d",&yea.year,&yea.month ,&yea.day );
   judgment(yea);
        flag=(yea.year%400==0)||(yea.year%4==0&&yea.year%100!=0);
        if(flag==1)
        {
                a[2]++;
        }
       
       
        switch(yea.month)
        {
        case 1:
                sum=sum+a[0]+yea.day ;
                break;
        case 2:
                sum=sum+a[0]+a[1]+yea.day;
                break;
        case 3:
                sum=sum+a[0]+a[1]+a[2]+yea.day;
                break;
        case 4:
                sum=sum+a[0]+a[1]+a[2]+a[3]+yea.day;
                break;
        case 5:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+yea.day;
                break;
        case 6:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+yea.day;
                break;
        case 7:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+yea.day;
                break;
        case 8:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+yea.day;
                break;
        case 9:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+yea.day;
                break;
        case 10:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+yea.day;
                break;
        case 11:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]+yea.day;
                break;
        case 12:
                sum=sum+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]+a[11]+yea.day;
                break;
               
        }
        printf("%d\n",sum);
        return sum;
       
}


void judgment(struct ti m)
{
        if(m.month>12||m.month<0)
        {
                printf("您输入的月份有误,请重新输入\n";
                yearday(m );
        
               
        }
        else if(m.day<0||m.day>31)
        {
                printf("您输入的日期有误,请重新输入\n";
                yearday(m );
               
        }

       
}


void main()
{
        struct ti ye;
        yearday(ye );


       
}
3楼2011-05-10 23:46:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励参与交流! 2011-05-13 21:20:08
俺也来一枚:
CODE:
#include
#include
#include
tm buf;
int main(){
        using namespace std;
        int y, m, d, ds = 0, yb = 0, ye = 0;
        time_t t;
        tm t1, t2;
        while(1){
                if(cin.eof())
                        break;
                cout<<"birthday:"<                 if(cin>>y>>m>>d){
                        buf.tm_year = y - 1900;
                        buf.tm_mon = m - 1;
                        buf.tm_mday = d + 1;
                        t = mktime(&buf);
                }
                if(t == -1){
                        cout<<"error"<                         continue;
                }
                memcpy(&t1, gmtime(&t), sizeof(tm));
                yb = t1.tm_yday;
                t = time(0);
                memcpy(&t2, gmtime(&t), sizeof(tm));
                if(t1.tm_year == t2.tm_year){
                        ye = t2.tm_yday;
                        ds = ye - yb;
                }
                if(t1.tm_year < t2.tm_year){
                        buf.tm_mon = 12 - 1;
                        buf.tm_mday = 31;
                        buf.tm_year = t1.tm_year;
                        t = mktime(&buf);
                        memcpy(&t1, gmtime(&t), sizeof(tm));
                        ye = t1.tm_yday + 1;
                        ds = 1 + ye - yb;
                        yb = 0;
                        for(++buf.tm_year; buf.tm_year < t2.tm_year; ++buf.tm_year){
                                buf.tm_mon = 12 - 1;
                                buf.tm_mday = 31;
                                t = mktime(&buf);
                                memcpy(&t1, gmtime(&t), sizeof(tm));
                                ye = t1.tm_yday + 1;
                                ds += 1 + ye - yb;
                        }
                        ds += t2.tm_yday + 1;
                }
                if(t1.tm_year > t2.tm_year){
                        cout << "YOU ARE NOT BIRTH YET!"<                         continue;
                }
                cout<<"days on live:"<         }
        return 0;
}

漩涡的中心有一块空地,空空的。
4楼2011-05-13 11:05:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 微尘、梦想 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见