| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:C语言日历问题
只看楼主 加入收藏
loving桐
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-29
结帖率:100%
收藏
 问题点数:0 回复次数:2 
C语言日历问题
我是C语言初学者,在论坛上看到一篇日历程序(我稍微改动了下)。
现在显示的月份是1,2...12,怎样能变成显示是Jan,Feb...这样的。
还有就是能不能请大神说下这个程序的设计思路。

#include<stdio.h>
void main()
 {
      int firstday(int year);

     int sw,leap,i,j,k,wd,day;  
     
     int date[12][6][7];         //定义一个三维数组 分别对应 月、周、日
     char title[] = "SUN MON TUE WED THU FRI SAT";
     int day_tab[][12] = {
                         {31,28,31,30,31,30,31,31,30,31,30,31},
                         {31,29,31,30,31,30,31,31,30,31,30,31}
                         };        //平年和闰年的月份天数
     int year;
     
     printf("请输入年份:");
     scanf("%d",&year);
     printf("                            year:%d\n",year);
     
     sw = firstday(year);        //计算这一年的第一天是星期几
    leap = (year%4 ==0 && year%100 != 0) || year%400 ==0;       //闰年
     for( i=0; i<12; i++ )
         for( j=0; j<6; j++)
             for( k=0; k<7; k++)
                 date[i][j][k] = 0;   //将所有的日期都归零
    for( i=0; i<12; i++)
         for( wd=0,day=1; day<=day_tab[leap][i]; day++)
         {
             date[i][wd][sw] = day;
             sw = ++sw%7;
             if(sw == 0)
                 wd++;
         }
         
        for( i=0; i<6; i++)
        {
            
            for(wd=0,k=0;k<7;k++)                   //将同一行的天数相加
               wd = wd + date[i][5][k] + date[i+6][5][k];
            wd=wd>0? 6:5;
            printf("\n");
            printf("   %d                                  %d\n",i+1,i+7);
            printf("   ___________________________       ___________________________\n");
            printf("   %s       %s   \n",title,title);
            
            for(j=0;j<wd;j++)
            {
               
                printf("  ");
                for( k=0; k<7; k++)
                    if(date[i][j][k])
                        printf("%4d",date[i][j][k]);
                    else printf("    ");
                    printf("      ");
                for( k=0; k<7; k++)
                    if(date[i+6][j][k])
                        printf("%4d",date[i+6][j][k]);
                    else printf("    ");
                    printf(" \n");
            }
        }
 }

 /*计算该年份第一天是星期几*/
int firstday(int year)
 {
     int leap(int ye);

     int i;
     long int n;

     
     n = year*365;

     for(i = 1; i < year; i++)
         if(leap(i))
             n += 1;   
     return (n%7);
 }

 int leap(int ye)
 {
     if( (ye%4 ==0 && ye%100 != 0) || ye%400 ==0 )
         return 1;
     else
         return 0;
 }
搜索更多相关主题的帖子: include C语言 title 日历 
2015-06-30 12:43
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
将这些单词存到数组,然后输出时调用数组成员

一片落叶掉进了回忆的流年。
2015-06-30 12:47
loving桐
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-29
收藏
得分:0 
回复 2楼 诸葛欧阳
那原程序要把哪里删除呢?
2015-06-30 12:49
快速回复:C语言日历问题
数据加载中...
 
   



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

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