| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1133 人关注过本帖
标题:日历问题
取消只看楼主 加入收藏
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
结帖率:93.75%
收藏
已结贴  问题点数:10 回复次数:2 
日历问题
日历,输入年份和月份,输出该月日历
搜索更多相关主题的帖子: 日历 
2011-07-13 13:37
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
收藏
得分:0 
回复 3楼 为我留住记忆
NO  NO,  自己写的有缺陷,要多学别人的算法,
2011-07-13 16:27
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
收藏
得分:0 
  晒晒自己的吧#include "stdafx.h"
/*声明函数GetWeekDay求某年某月某日是星期几*/

int GetWeekDay(int,int,int);

/*声明函数GetMonthDays求某年某月共有几天*/

int GetMonthDays(int,int);

/*声明函数PrintMonthCalender打印某月日历*/\

int PrintMonthCalender(int,int);

/*声明函数CheckLeap判断某年是否是闰年*/

int CheckLeap(int);



int _tmain(int argc, _TCHAR* argv[])
{
    /*定义变量,startDay为要求月的第一天的星期数,

    *days为要求月的天数

    */

    int year,month,startDay,days;

    printf("input the year and month(YYYY-MM):");

    scanf("%d-%d",&year,&month);

    printf("\n\t\t\t%d-%d\n",year,month);

    /*引用函数GetWeekDay求要求月的首天是星期几*/

    startDay=GetWeekDay(year,month,1);

    /*引用函数GetMonthDays求要求月有多少天*/

    days=GetMonthDays(year,month);

    PrintMonthCalender(startDay,days);

    return(0);

}

/*定义函数GetWeekDay求某年某月某日是星期几*/

int GetWeekDay(int year,int month,int day)

{

    int days,weekday,i;

    days=year*365+year/400+year/4-year/100;

    /*计算从0001年1月1日到该月为止的天数*/

    for(i=12;i>=month;i--)

        days=days-GetMonthDays(year,i);

    /*计算从0001年1月1日到该天为止的天数*/

    days=days+day;

    /*计算该天的星期数*/

    weekday=days%7;

    return weekday;

}


int GetMonthDays(int year,int month)

{

    if(month==4||month==6||month==9||month==11)

        return 30;

    else

    {



        if(month==2)

        {

            /*对闰年的判断*/

            if(CheckLeap(year))

                return 29;

            else

                return 28;

        }

        else

            return 31;

    }

}

int PrintMonthCalender(int startDay,int days)

{

    int num,count;

    num=-startDay;

    printf("\nSun.\tMon.\tTue.\tWed.\tThu.\tFri.\tSat.\n");

    /*控制输出的天数*/

    while(num<=days)

    {

        printf("\n");

        /*对一个星期七天的控制*/

        for(count=1;count<=7;count++)

        {

            num=num+1;

            /*控制输出的天数*/

            if(num>=1&&num<=days)

                printf("%d\t",num);

            else

                printf("\t");

        }

    }

    printf("\n");
    return 0;


}


int CheckLeap(int year)

{

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

        return 1;

    else

        return 0;

}
2011-07-13 16:34
快速回复:日历问题
数据加载中...
 
   



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

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