24小时热门版块排行榜    

查看: 1226  |  回复: 3
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

微尘、梦想

木虫 (知名作家)

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

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

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

说明:这算两道题,可以任选一个,也可以把这两道题写在一个程序里面!
回复此楼
任风云变幻,我笑对人生!
已阅   回复此楼   关注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的回帖
查看全部 4 个回答

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的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[职场人生] 40+中年人失业后,还能找到好工作吗? +11 xqy2009 2026-10-13 13/650 2026-10-15 21:32 by bear2007
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
信息提示
请填处理意见