C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷小功能
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷的具體代碼,供大家參考,具體內(nèi)容如下
一、學(xué)了C語(yǔ)言,相信大家都可以做出來(lái)。我們要實(shí)現(xiàn)的就是用戶輸入年,月,日。然后打印出來(lái)。
二、需要用到的知識(shí)點(diǎn)
1.for循環(huán)。2.if判斷。3.函數(shù)的調(diào)用
如果您們學(xué)了圖形庫(kù)的話,可以貼圖上去,效果更加好看。我沒(méi)有素材,所以,直接用C語(yǔ)言來(lái)完成。
三、運(yùn)行結(jié)果

四、我們用C語(yǔ)言代碼實(shí)現(xiàn)
/************************************************************************
* 項(xiàng)目名稱:萬(wàn)年歷
* 項(xiàng)目描述:算法,判斷
* 項(xiàng)目環(huán)境:VS2013
* 生成日期:2020-3-8
* 作者所屬:追夢(mèng)
*************************************************************************/
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int year, month, day;
int run[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//閏年
int ping[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//平年
char weekday[7][10] = { "一", "二", "三", "四", "五", "六", "日" };//星期
void printStar()//打印
{
printf("**************************************************\n");
}
void printBegin()//打印抬頭
{
printf("\t\t萬(wàn)年歷\t\n");
printStar();
for (int i = 0; i < 7; i++)//打印星期
{
printf("%s\t", weekday[i]);
}
printf("\n");
}
//打印下面的日期,判斷當(dāng)前年份是平年還是閏年
int leap(int year)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//閏年
return 1;
else if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)//閏年
return 1;
else
return 0;//平年
}
//計(jì)算year離1900年有多少天
int daySum(int year,int month,int day,int run[],int ping[])
{
//參照物1900-1-1-星期一(百度)
int i, sum = 0;
//計(jì)算年份天數(shù),閏年+366,平年+365
for( i = 1900; i < year;i++)
{
if (leap(i) == 1)
sum += 366;
else
sum += 365;
}
for (i = 0; i < month-1; i++)//計(jì)算月份的天數(shù)
{
if (leap(year) == 1)
sum += run[i];
else
sum += ping[i];
}
return sum;
}
//打印日歷
void printData(int sum, int year, int month)
{
int result, temp, i; //result空格
result = sum % 7;//前面的空格就是余數(shù)---->0-6
//當(dāng)前月份空余的天數(shù),空格表示
for ( i = 0; i < result; i++)
{
printf("\t");
}
temp = 7 - result;//開(kāi)始打印1號(hào)
if (leap(year) == 1)
{
//數(shù)組下標(biāo)是從0開(kāi)始,月份從一號(hào)開(kāi)始i=1
for (i = 1; i <= run[month - 1]; i++)
{
printf("%d\t", i);
if (i == temp || (i - temp) % 7 == 0)//換行
printf("\n");
}
printf("\n");
}
else
{
for (i = 1; i <= ping[month - 1]; i++)
{
printf("%d\t", i);
if (i == temp || (i - temp) % 7 == 0)//換行
printf("\n");
}
printf("\n");
}
}
int main()
{
system("color 2f");//改變黑窗口的顏色
printf("請(qǐng)輸入年 月 日:");
scanf("%d%d%d", &year, &month, &day);
int sum = daySum(year, month, day, run, ping);
printBegin();
printData(sum, year, month);
system("pause");
return 0;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Qt QCompleter自動(dòng)補(bǔ)全的實(shí)現(xiàn)
本文主要介紹了Qt QCompleter自動(dòng)補(bǔ)全的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
C++中char*轉(zhuǎn)換為L(zhǎng)PCWSTR的解決方案
最近在學(xué)習(xí)C++,遇到了一個(gè)char*轉(zhuǎn)換為L(zhǎng)PCWSTR的問(wèn)題,通過(guò)查找資料終于解決了,所以下面這篇文章主要介紹了C++中char*轉(zhuǎn)LPCWSTR的解決方案,文中通過(guò)詳細(xì)的示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01
PyQt5利用Qt Designer實(shí)現(xiàn)簡(jiǎn)單界面交互
本文主要介紹了PyQt5利用Qt Designer實(shí)現(xiàn)簡(jiǎn)單界面交互,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
C語(yǔ)言中的操作符優(yōu)先級(jí)的詳細(xì)介紹
這篇文章主要介紹了C語(yǔ)言中的操作符優(yōu)先級(jí)的詳細(xì)介紹的相關(guān)資料,希望通過(guò)本文能幫助到大家,大家通過(guò)本文能徹底掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08
C語(yǔ)言實(shí)現(xiàn)像素鳥(niǎo)游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)像素鳥(niǎo)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Qt中簡(jiǎn)單的按鈕槽函數(shù)傳遞參數(shù)方法
這篇文章主要介紹了Qt中簡(jiǎn)單的按鈕槽函數(shù)傳遞參數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

