| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:请高手帮忙写一个计算日期的程序
只看楼主 加入收藏
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
 问题点数:0 回复次数:3 
请高手帮忙写一个计算日期的程序
题目要求:用键盘输入一个日期:如MM/DD/YYYY
那么屏幕显示明天的日期和一个星期以后的日期

程序要求用到以下的结构
typedef struct date
{
   int mm,dd,yy;
} date;

date tomorrow (date today);

void nextweek (date today, date *nweek);


比如,输入11/21/08  得到
11/22/08 and 11/28/08

输入 11/30/08  得到12/1/08 and 12/7/08

输入12/31/08  得到 1/1/09 and 1/7/09

谢谢大家
搜索更多相关主题的帖子: 键盘 
2008-11-29 14:26
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
得分:0 
2008-11-30 13:45
yu8697593
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-21
收藏
得分:0 
#include <stdio.h>

int fac(int x,int y);

int dayy(int x,int y);

void main()

{
    int day,month,year;
    int k;
    printf("请输入一个日期:\n");
    scanf("%d%d%d",&year,&month,&day);

    printf("你输入的日子为:");
    printf("%d年%d月%d日\n",year,month,day);

    
    k=dayy(month,year)+day;//计算输入时间是这个年的第几天
   
   
    printf("第二天的日子为:");
    printf("%d年%d月%d日\n",fac(k+1,year)/100>=month?year:year+1,fac(k+1,year)/100,fac(k+1,year)%100);
   
    printf("一周后的日子为:");
    printf("%d年%d月%d日\n",fac(k+7,year)/100>=month?year:year+1,fac(k+7,year)/100,fac(k+7,year)%100);
}


int fac(int x,int y)//输入一个天数,求年月日。
{   
    int a[14]={1,32,60,91,121,152,182,213,244,274,305,335,366,397};
    int i,d;

     if ((y%4==0&&y%100!=0)||y%400==0)//判断是否为闰年
     {
         for (i=2;i<=12;i++)
         {
             a[i]=a[i]+1;
         }
     }

    for (i=1;i<14;i++)
    {
         if (a[i]>x)
        {
             if (i==13)
            {
                y++;
                 d=1*100+x-a[12]+1;
                break;
             }

            d=i*100+(x-a[i-1]+1);//i表示第几月x-a[i-1]+1表示是这个月的几号
            
            break;
        }
        else continue;
        
    }
    return d;
}


int dayy(int x,int y)//该函数的作用是计算到这个月的第一天前是该年的第几天
{
    int nday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int a=0;
    int i;
    if ((y%4==0&&y%100!=0)||y%400==0)
    {
        nday[2]=29;
    }
    for (i=0;i<x;i++)
    {
        a+=nday[i];
    }
    return a;
    
    
}
2008-12-01 17:50
yu8697593
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-21
收藏
得分:0 
我没有按你的意思来写,但是也能实现
2008-12-01 17:51
快速回复:请高手帮忙写一个计算日期的程序
数据加载中...
 
   



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

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