c語言公曆,c語言日曆程序

本文目錄一覽:

能不能幫我用c語言寫下準確公曆的計算程序

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

if(month==1||3||5||7||8||10||12)

這種寫法是錯誤的。

應該這樣寫

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

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

另外,其實你可以不這麼寫,太多了,可以用

switch..case

switch(month)

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

day=31;break;

case 4:

case 6:

case 9:

case 11:

day=30;break;

case 2:

if()…

(c語言實現)打印指定年份的公曆表和農曆表

#include stdlib.h

#include stdio.h

#include conio.h

int IsLeapYear(int);

main()

{

int i;

int day;

int year;

int temp;

int temp_i;

long int Year_days = 0;

int Year_Start = 1;

int Per_Year_Days;

int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};

printf(“輸入年份: “); /*從鍵盤輸入年份*/

scanf(“%d”,year);

while(Year_Start year)

{

if( IsLeapYear( Year_Start ) ) /*判斷輸入的年份是否為閏年*/

Per_Year_Days = 366;

else

Per_Year_Days = 365;

Year_days = Year_days + Per_Year_Days;

Year_Start++;

} /*這個while循環計算從1到輸入的年份共有多少天*/

for( temp = 1; temp =12; temp++ )

{ /*這個for循環打印出該年每個月的日曆*/

switch( temp )

{

case 1:

printf(” January(%d)\n”,year);

break;

case 2:

printf(” February(%d)\n”,year);

break;

case 3:

printf(” March(%d)\n”,year);

break;

case 4:

printf(” April(%d)\n”,year);

break;

case 5:

printf(” May(%d)\n”,year);

break;

case 6:

printf(” June(%d)\n”,year);

break;

case 7:

printf(” July(%d)\n”,year);

break;

case 8:

printf(” August(%d)\n”,year);

break;

case 9:

printf(” September(%d)\n”,year);

break;

case 10:

printf(” October(%d)\n”,year);

break;

case 11:

printf(” November(%d)\n”,year);

break;

case 12:

printf(” December(%d)\n”,year);

break;

}

i = Year_days % 7;

printf(“Mon Tue Wed Thu Fri Sat Sun\n”);

if( i != 0 )

for( temp_i = 0; temp_i i; temp_i++)

printf(” “);

day = 1;

if( IsLeapYear(year) temp == 2) /*如果是閏年的2月*/

while( day = month_day[12] )

{

if( day 1 )

if( Year_days % 7 == 0 )

printf(“\n”);

if( day = 10 )

printf(“%-4d”,day);

else

printf(“%-4d”,day);

Year_days++;

day++;

}

else /*不是閏年*/

while (day = month_day[temp-1])

{

if( day 1 )

if( Year_days % 7 == 0 )

printf(“\n”);

if( day =10 )

printf(“%-4d”,day);

else

printf(“%-4d”,day);

Year_days++;

day++;

}

printf(“\n”);

if( getch() == ‘q’ ) /*輸入Q結束*/

exit(0);

}

getch();

}

int IsLeapYear( int year ) /*判斷是否為閏年*/

{

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

(year % 400 == 0) )

return 1;

else

return 0;

}

用C語言怎麼將公曆日期轉化為農曆日期?

其實很簡單,你的程序中定義一些數組,保存一些重要參數即可,下面是JAVASCRIPT的,看懂了你就可以用C來寫:

var lunarInfo=new Array(

0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,

0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,

0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,

0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,

0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,

0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,

0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,

0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,

0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,

0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,

0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,

0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,

0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,

0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,

0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)

//====================================== 傳回農曆 y年的總天數

function lYearDays(y) {

var i, sum = 348

for(i=0x8000; i0x8; i=1) sum += (lunarInfo[y-1900] i)? 1: 0

return(sum+leapDays(y))

}

//====================================== 傳回農曆 y年閏月的天數

function leapDays(y) {

if(leapMonth(y)) return((lunarInfo[y-1900] 0x10000)? 30: 29)

else return(0)

}

//====================================== 傳回農曆 y年閏哪個月 1-12 , 沒閏傳回 0

function leapMonth(y) {

return(lunarInfo[y-1900] 0xf)

}

//====================================== 傳回農曆 y年m月的總天數

function monthDays(y,m) {

return( (lunarInfo[y-1900] (0x10000m))? 30: 29 )

}

C語言編寫 年曆顯示程序

此題不是很難,我會前三個

關鍵是算那一年的第一天是周幾

給你個基本算法,一年是365天,閏年366天

364是7的倍數,這樣一年多出一天,中間多少個閏年,在加上相應的天數即可

400年多出來的天數是400+97=497也是7的倍數,那麼400年一輪迴,這樣就算400年以內的即可

一個子函數,返回這一年的第一天是周幾,很好做

int ye(int year)

{

int y=year%400;

int day=y;

int i;

for(i=0;iy;i++)

if(閏年判斷)

day++;

return day%7;

}

做一個月份天數的全局數組

int mo[12]={31,28,31,30,31,30,31,31,30,31,30,31};

需要時用一個if判斷閏年改變m0[1]的值是28還是29

打印子函數,有一個小技巧,就是每個月前面的空缺部分,這個1月份是ye子函數的返回值,後面的你看和前面月份是不是重合啊,吧這個記錄下來在下一月份用即可

1 2

3 4

這樣月份排列更好打印一些,你的那個截圖有點麻煩

int pr(int year)

{

int k=ye(year);

int i,j,;

if(閏年判斷)

mo[1]=29;

else

mo[1]=28;

for(i=0;i12;i++)

{

printf(“周幾英文的打印”);

for(j=0;jk;j++)

printf(“一般是四個空格,就是月份前面空缺的打印”);

for(j=1;j=mo[i];j++)

{

printf(“%4d”,j);

k++;

if((k+j)%7==0)

printf(“\n”);

}

k%=7;

if(k!=0)

printf(“\n”);

}

}

如果像你那樣,感覺需要賦值一個大一點的數組,在吧數組打印出來更好,呵呵

c語言 萬年曆的程序設計

#include windows.h

#include winnt.h

#includeiostream

#includeiomanip

using namespace std;

int week(int,int,int); //根據年月日判斷星期幾

int leap_year(int); //判斷閏年

void display_year(int ); //顯示某年日曆

void demand_day(int,int,int); //查詢某天

int main()

{

int y,m,d,es=1;

while(es)

{

HANDLE consolehwnd;

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(consolehwnd,12);

cout”請選擇操作:\n1→顯示某年日曆\

\n2→查詢某天\n0→退出”endl;

char tp[20];cintp;

if(tp[1]!=’\0’||tp[0]’2’||tp[0]’0′){cout”輸入有誤”endl;continue;}

switch(tp[0]-48)

{

case 1:{cout”請輸入年份:”;ciny;system(“cls”);display_year(y);break;}

case 2:{cout”請輸入年、月、日,以空格分開:”;cinymd;system(“cls”);

demand_day(y,m,d);break;}

case 0:{es=0;break;}

}

}

return 0;

}

//—–根據年月日判斷星期幾————————-

int week(int y,int m, int d)

{

int week1,yy=y;

if(m==1) {m=13;yy–;}

if(m==2) {m=14;yy–;}

week1=(d+2*m+3*(m+1)/5+yy+yy/4-yy/100+yy/400)%7;

int s;

switch (week1)

{

case 0: s=1; break;

case 1: s=2; break;

case 2: s=3; break;

case 3: s=4; break;

case 4: s=5; break;

case 5: s=6; break;

case 6: s=0; break;

}

return s;

}

//—-判斷閏年————————————-

int leap_year(int y)

{

int i;

if((y%4==0y%100!=0)||y%400==0)i=1;

else i=0;

return i;

}

//——–顯示某年日曆————————

void display_year(int y)

{

int n1,n2,i,j,a[13],c,d;

HANDLE consolehwnd;

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(consolehwnd,5);

coutsetw(38)y”年”endl;

coutsetw(28)”*********”;

for(i=1;i=27;i++)cout’*’;

coutendl;

a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;//

a[4]=a[6]=a[9]=a[11]=30; //確定每月天數

if(leap_year(y))a[2]=29;

else a[2]=28; //

for(i=1;i=11;i+=2) //六次循環

{

SetConsoleTextAttribute(consolehwnd,1);

coutsetw(14)i”月”setw(42)i+1″月”endl;

SetConsoleTextAttribute(consolehwnd,2);

coutsetw(4)”日”setw(4)”一”setw(4)”二”setw(4)”三”setw(4)\

“四”setw(4)”五”setw(4)”六”;

coutsetw(16)’ ‘;

coutsetw(4)”日”setw(4)”一”setw(4)”二”setw(4)”三”setw(4)\

“四”setw(4)”五”setw(4)”六”endl;

SetConsoleTextAttribute(consolehwnd,7);

n1=week(y,i,1);n2=week(y,i+1,1);

if(n1) //———–

{

for(j=1;j=n1;j++) //

coutsetw(4)’ ‘;

}

for(j=1;j=7-n1;j++)

coutsetw(4)j;

coutsetw(16)’ ‘;

if(n2)

{ //—–輸出每次循環的第一行—

for(j=1;j=n2;j++)

coutsetw(4)’ ‘;

}

for(j=1;j=7-n2;j++)

coutsetw(4)j;

coutendl; //————–

c=8-n1;d=8-n2;

for(int m=1;m6;m++) //每月日曆最多佔六行

{

if(ca[i])coutsetw(4*7)’ ‘;//若ca[i],則該月的這一行全部輸出空格

for(j=c;j=a[i];j++)

{

coutsetw(4)j;

if((j-c+1)%7==0){c=j+1;break;}

if(j==a[i]){coutsetw((6-week(y,i,a[i]))*4)’ ‘;c=j+1;break;}

//如果j是該月最後一天,該行剩下的全部補空格

}

coutsetw(16)’ ‘;

if(da[i+1])coutsetw(4*7)’ ‘;

for(j=d;j=a[i+1];j++)

{ //

coutsetw(4)j;

if((j-d+1)%7==0){d=j+1;break;}

if(j==a[i+1]){coutsetw((6-week(y,i+6,a[i+1]))*4)’ ‘;d=j+1;break;}

}

coutendl;

}

coutendl;

}

coutendl;

}

//——–查詢某天————

void demand_day(int y,int m,int d)

{

int n;

HANDLE consolehwnd;

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(consolehwnd,5);

n=week(y,m,d);

switch(n)

{

case 1:couty”年”m”月”d”日””,””星期一”endl;break;

case 2:couty”年”m”月”d”日””,””星期二”endl;break;

case 3:couty”年”m”月”d”日””,””星期三”endl;break;

case 4:couty”年”m”月”d”日””,””星期四”endl;break;

case 5:couty”年”m”月”d”日””,””星期五”endl;break;

case 6:couty”年”m”月”d”日””,””星期六”endl;break;

case 0:couty”年”m”月”d”日””,””星期日”endl;break;

default:break;

}

coutendl;

}

原創文章,作者:ERNL,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/141122.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ERNL的頭像ERNL
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論