已有140人关注
想设计一个倒计时的软件(WIN32)
发表在C语言答疑区 2017-03-09
是否精华
版块置顶:

我想使程序获取一个日期(例如3月9号)

之后我把要倒计时的时间(例如6月20号)输入使程序自动获取还有多少天

我看了很多的资料还是不会希望老师可以帮我

谢谢

分享到:
精彩评论 2
李木子
学分:2954 LV11
2017-03-10
沙发

#include <stdio.h> 

struct date 

    int year; 

    int month; 

    int day; 

 }; 

    int main(void) 

 {    

      int isPrime(int year); 

      int dateDiff(struct date mindate,struct date maxdate); 

      struct date mindate,maxdate; 

      int days; 

  

    printf("please input the one date:"); 

    scanf("%i-%i-%i",&mindate.year,&mindate.month,&mindate.day); 

    printf("please input other day:"); 

    scanf("%i-%i-%i",&maxdate.year,&maxdate.month,&maxdate.day); 

       

   days=dateDiff(mindate,maxdate);  

   printf("the day is:%d\n",days); 

   return 0; 

  

 

     int isPrime(int year) 

    if ((year%4==0&&year%100!=0)||(year%400==0)) 

    { 

             return 1; 

    }  

    else 

    { 

             return 0; 

      } 

       

     } 

       

    int dateDiff(struct date mindate,struct date maxdate) 

     { 

         int days=0, flag=1; 

         const int primeMonth[12]={31,29,31,30,31,30,31,31,30,31,30,31}; 

    const int notPrimeMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 

           

   struct date tmp; 

   if((mindate.year>maxdate.year)||(mindate.year==maxdate.year&&mindate.month>maxdate.month)||(mindate.year==maxdate.year&&mindate.month==maxdate.month&&mindate.day>maxdate.day)) 

    { 

        tmp=mindate; 

        mindate=maxdate; 

          maxdate=tmp; 

    }  

           

    int maxmonth,minmonth; 

    if (maxdate.month<mindate.month) 

         { 

        maxmonth=mindate.month; 

        minmonth=maxdate.month; 

             flag=-1; 

         } 

    else 

         { 

        maxmonth=maxdate.month; 

             minmonth=mindate.month; 

             flag=1; 

         } 

           

         for(int j=mindate.year;j<maxdate.year;++j) 

         { 

        if (isPrime(j)==1) 

        { 

            days+=366; 

        } 

        else 

                 days+=365; 

         } 

      

    int day; 

         if(isPrime(maxdate.year)==1) 

         { 

          

       for(int i=minmonth;i<maxmonth;i++) 

       { 

            day=primeMonth[i-1]*flag; 

           days=days+day; 

       } 

        days=days+maxdate.day-mindate.day; 

  } 

    else 

   { 

        for (int i=minmonth;i<maxmonth;i++) 

        { 

           day=notPrimeMonth[i-1]*flag; 

                 days=days+day; 

       } 

       days=days+maxdate.day-mindate.day; 

    } 

   return days; 

     }


无数的星球_1489066332
学分:27 LV2
2017-03-16
板凳

李木子 发表于2017-03-10 09:12

#include <stdio.h> 

struct date 

    int year; 

    int month; 

    int day; 

 }; 

    int main(void) 

 {    

      int isPrime(int year); 

      int dateDiff(struct date mindate,struct date maxdate); 

      struct date mindate,maxdate; 

      int days; 

  

    printf("please input the one date:"); 

    scanf("%i-%i-%i",&mindate.year,&mindate.month,&mindate.day); 

    printf("please input other day:"); 

    scanf("%i-%i-%i",&maxdate.year,&maxdate.month,&maxdate.day); 

       

   days=dateDiff(mindate,maxdate);  

   printf("the day is:%d\n",days); 

   return 0; 

  

 

     int isPrime(int year) 

    if ((year%4==0&&year%100!=0)||(year%400==0)) 

    { 

             return 1; 

    }  

    else 

    { 

             return 0; 

      } 

       

     } 

       

    int dateDiff(struct date mindate,struct date maxdate) 

     { 

         int days=0, flag=1; 

         const int primeMonth[12]={31,29,31,30,31,30,31,31,30,31,30,31}; 

    const int notPrimeMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 

           

   struct date tmp; 

   if((mindate.year>maxdate.year)||(mindate.year==maxdate.year&&mindate.month>maxdate.month)||(mindate.year==maxdate.year&&mindate.month==maxdate.month&&mindate.day>maxdate.day)) 

    { 

        tmp=mindate; 

        mindate=maxdate; 

          maxdate=tmp; 

    }  

           

    int maxmonth,minmonth; 

    if (maxdate.month<mindate.month) 

         { 

        maxmonth=mindate.month; 

        minmonth=maxdate.month; 

             flag=-1; 

         } 

    else 

         { 

        maxmonth=maxdate.month; 

             minmonth=mindate.month; 

             flag=1; 

         } 

           

         for(int j=mindate.year;j<maxdate.year;++j) 

         { 

        if (isPrime(j)==1) 

        { 

            days+=366; 

        } 

        else 

                 days+=365; 

         } 

      

    int day; 

         if(isPrime(maxdate.year)==1) 

         { 

          

       for(int i=minmonth;i<maxmonth;i++) 

       { 

            day=primeMonth[i-1]*flag; 

           days=days+day; 

       } 

        days=days+maxdate.day-mindate.day; 

  } 

    else 

   { 

        for (int i=minmonth;i<maxmonth;i++) 

        { 

           day=notPrimeMonth[i-1]*flag; 

                 days=days+day; 

       } 

       days=days+maxdate.day-mindate.day; 

    } 

   return days; 

     }


在生成时候发生错误:

严重性 代码 说明 项目 文件 禁止显示状态

错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 中考倒计时 c:\users\qq229\desktop\中考倒计时\中考倒计时\中考倒计时\中考倒计时.cpp 20



严重性 代码 说明 项目 文件 禁止显示状态

错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 中考倒计时 c:\users\qq229\desktop\中考倒计时\中考倒计时\中考倒计时\中考倒计时.cpp 22


首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照