程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 【經典算法】:用C語言畫日歷表

【經典算法】:用C語言畫日歷表

編輯:關於C語言

【經典算法】:用C語言畫日歷表


寫這篇博客的目的是為了寫一份作業,要求是要畫日歷表,所以為了完成這個作業,我就寫了這個程序。

功能如下:
1,查詢某天是星期幾
2,給出年和月,把該月的日歷表畫出來

就是如上兩個功能

值得一提的是,我的代碼實現了上述兩個功能,但是不是最優化的,因為我是用我上一次的代碼重構的這個程序。所以大家就拿著使就好了,至於想看懂的話,真的挺費勁的,因為我也懶得改了。。。

好吧,給上代碼

#include 
#include 
using namespace std;
int num1[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
int num2[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int frontday(int year,int month,int day){  //計算這年過了多少天了
    int sum=0;
    if((year%100!=0 &&year%4==0) || year%400==0){
        for(int i=0;i1){
                sum = num1[month1-1]-day1+day2;
                for(int i=month1+1;i<=month2-1;i++){
                    sum+=num1[i-1];
                }
                return sum;
            }
        }
        else{
            if(month1==month2)  return day2-day1;
            if((month2-month1)==1){
                return num2[month1-1]-day1+day2;
            }
            if((month2-month1)>1){
                sum = num2[month1-1]-day1+day2;
                for(int i=month1+1;i<=month2-1;i++){
                    sum+=num2[i-1];
                }
                return sum;
            }
        }
}
int weekday(int year1,int year2,int month1,int month2,int day1,int day2){
    int sum=0;    //以下分類討論計算不同年之間天數
    if((year2-year1)<0) cout<<"應該先輸入小的年份,輸入錯誤";
    if((year2-year1)==0){
            sum = JudgeMonthDay(year1,month1,month2,day1,day2);

    }
    if((year2-year1)==1)   sum = backday(year1,month1,day1)+frontday(year2,month2,day2);
    if((year2-year1)>1){
        sum = backday(year1,month1,day1)+frontday(year2,month2,day2);
        for(int i=year1+1;i<=year2-1;i++){
            sum+=isyear(i);
        }
    }
    int temp;
    if((sum+1)%7==0) temp = 7;
    else temp = (sum+1)%7;
    return temp;
}
void main(){
    int k;
    cout<<"輸入1進入查詢功能,查詢某天的信息"<>k;
    if(k==1){
          cout<<"請輸入您想要查找的日期,分別為年月日,都用空格隔開"<>year2>>month2>>day2;
          cout<<"您查詢的日期是星期"<>year2>>month2;
    int pos;
    if((year2%4==0&&year2%100!=0) ||year2%400==0){
          pos = num1[month2-1];
    }
    else{
          pos = num2[month2-1];
    }
    cout<

使用截圖:
這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved