| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 324 人关注过本帖
标题:C语言经典案例:日期的处理及应用,回顾下
只看楼主 加入收藏
油炸大虾
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-4-15
收藏
 问题点数:0 回复次数:1 
C语言经典案例:日期的处理及应用,回顾下
需求定义:
   完成一个在控制台打印要查询日期的日历格式。如:控制台输入2009 01则打印出日历如下:编写程序实现让用户输入日期,如果输入的日期只有年和月的话列出某年某月的日历,如果输入的日期有年月日的话,列出某年某月某日是星期几,这月总共有多少天,今年是闰年还是平年。
代码实现:
#include <stdio.h>

//判断是否是闰年

int isLeap(int year)

{

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

   

       return 1;

    else

       return 0;

}

 

//计算一个月有多少天

int daysOfMonth(int year,int month)

{

    int days = 31;

 

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

       days = 30;

    if(month == 2)

       days = (isLeap(year)?29:28);

    return days;

}

 

//计算从公元元年到今天共有多少天

int totalDays(int year,int month,int day)

{

    int sum = 0;

    int i,j;

   

    for(i=1;i<year;i++)

    {

       sum += 365+isLeap(i);

    }

    for(i=1;i<month;i++)

    {

       sum += daysOfMonth(year,i);

    }

    sum += day;

    return sum;

}

 

int main(void)

{

    int year,month,day;

    int sum;

    int weekday;

    int i;

 

    do

    {

       printf("please enter the date(yyyy-mm-dd)\n");

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

    }while(year<1600 || month<1 || month>12 || day<1 || day>daysOfMonth(year,month));

   

    sum = totalDays(year,month,day);

    weekday = sum % 7;

   

    printf("the day is 星期%d\n",weekday);

    printf(" su mo tu we th fr sa \n");

    weekday = totalDays(year,month,1)%7;

    printf("%*s",weekday*3," ");

   

    sum = daysOfMonth(year,month);

 

    for(i=1;i<=sum;i++)

    {

       printf("%3d",i);

       if(++weekday%7==0)

           printf("\n");

    }

    printf("\n");

}
搜索更多相关主题的帖子: return 年月日 控制台 C语言 经典 
2011-04-26 11:11
油炸大虾
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-4-15
收藏
得分:0 
郁闷中
2011-04-26 11:14
快速回复:C语言经典案例:日期的处理及应用,回顾下
数据加载中...
 
   



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

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