當前位置:首頁 » 網頁前端 » web輸入指定年份生成年歷
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web輸入指定年份生成年歷

發布時間: 2022-09-30 19:28:07

c語言萬年歷代碼輸入年份輸出整年日歷,輸出年份和月份輸出某年某月的日歷

#include <stdio.h>
#define YEAR 365

int leap(int year)
{
int n;
n=(year%4==0&&year%4!=0||year%400==0);
return(n);
}
void count(int year, int month) /*基:2000年1月*/
{
int i,day,first_day,flag,year1,year2,temp=6;
flag=leap(year);
year1=year/100; /*相差幾百年*/
year2=year%100; /*中間幾十年*/
if(year>=2000) /*大於2000年*/
{
year1-=20;
day=year1/4; /*百閏年數*/
day+=(YEAR+24)*year1+YEAR*year2+(year2-1)/4; /*2000年至現年總天數*/
if(year>2000)day++; /*加上2000年閏年2月的29天*/
switch(month)
{
case 1:day+=0;break;
case 2:day+=31;break; /*加上月份天數*/
case 3:day+=59+flag;break;
case 4:day+=90+flag;break;
case 5:day+=120+flag;break;
case 6:day+=151+flag;break;
case 7:day+=181+flag;break;
case 8:day+=212+flag;break;
case 9:day+=243+flag;break;
case 10:day+=273+flag;break;
case 11:day+=304+flag;break;
case 12:day+=334+flag;break;
}
day+=temp; /*加上2000年1月1號是星期六*/
first_day=day%7; /*對7取余,為1號星期*/
}
else /*以下25行,計算<2000年,演算法同上*/
{
year1=20-1-year1;
year2=100-year2-1; /*倒減,應多減1*/
day=year1/4;
day+=36524*year1+365*year2+year2/4;
switch(month)
{
case 12:day+=31;break;
case 11:day+=61;break;
case 10:day+=92;break;
case 9:day+=122;break;
case 8:day+=153;break;
case 7:day+=184;break;
case 6:day+=214;break;
case 5:day+=245;break;
case 4:day+=275;break;
case 3:day+=306;break;
case 2:day+=334+flag;break;
case 1:day+=365+flag;break;
}
day-=temp; /*減去1號的6天*/
day=day%7;
first_day=(7-day)%7; /*反對稱*/
}
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:month=31;break;
case 4:
case 6:
case 9:
case 11:month=30;break;
case 2:month=28+flag;
}
printf(" SUN MON TUE WED THU FRI SAT\n");
for(i=1;i<=4*first_day;i++) /*輸出空格*/
printf(" ");
for(i=0;i<month;i++)
{
printf("%4d",i+1); /*輸出日歷*/
if((first_day+i)%7==6)printf("\n");
}
printf("\n");
}

void main()
{
int year,i;
printf("please input year :\n");
while(scanf("%d",&year)!=1)
{
printf("輸入錯誤,請重新輸入");
fflush(stdin);
}
for(i=1;i<13;i++)
{
printf("month:%d\n",i);
count(year,i);
}
}

⑵ C語言萬年歷

PIC16F877A LCD1602液晶式萬年歷
默認分類 2011-03-23 23:27:51 閱讀10 評論0   字型大小:大中小 訂閱
#include<pic.h>#define uchar unsigned char#define uint  unsigned int#define RS RA1#define RW RA2#define E  RA3#define s1 RB1#define s2 RB2#define s3 RB3 __CONFIG(0x1832);int Hours=0;//定義小時int Minutes=0;//定義分鍾int Seconds=0;//定義秒int Day=20;int Months=03;int Years=2011;const char Table[]="0123456789";   ////1602:0-9 數字uint Y[16]; //8位元組的顯示緩沖區uchar set_2=0;int incone(int n);int decone(int m);void delay(uint x)///延時 { uint a,b;  for(a=x;a>0;a--)   for(b=30;b>0;b--);   }
void interrupt time0 (){uchar temp,intnum;    T0IF=0;    TMR0=63;    intnum++;   if(intnum==40)     {   intnum=0;        Seconds++;  if(Seconds==60)    {   Seconds=0;   Minutes++;   if(Minutes==60)     {    Minutes=0;    Hours++;    if(Hours==24)      {     Hours=0;                    Day++;                  if(Day==31)                    {       Day=0;                      Months++;                                         if(Months==12)                       {                         Months=0;                         Years++;                       }                     }                 }                  }    }     }  }
void write_Directive(uchar a)//寫指令{RS=0;RW=0;delay(1);E=0;PORTD=a;delay(1);E=1;delay(1);E=0;delay(1);}
void write_Data(uchar a)//寫數據{RS=1;RW=0;delay(1);E=0;PORTD=a;delay(1);E=1;delay(1);E=0;delay(1);
}void init()//初始化{   ADCON1=0X07;  PORTB=0xFF;  TRISB=0XFF;  PORTC=0x00;  TRISC=0X00;  TRISD=0;  TRISA=0;  OPTION=0X06;  TMR0=63;  INTCON=0XA0;Y[14]=':';delay(15);write_Directive(0x38);delay(5);write_Directive(0x38);delay(5);write_Directive(0x38);write_Directive(0x01);write_Directive(0x02);//初始化後數據地址為0x80;即第一行,第一個位置write_Directive(0x0c);//不顯示游標}
void write_Data_String()//顯示時間函數{ Y[0]=Hours/10;//轉換成10進制顯示Y[1]=Hours%10;Y[2]=Minutes/10;Y[3]=Minutes%10;Y[4]=Seconds/10;Y[5]=Seconds%10;Y[6]=Years/1000;Y[7]=Years/100%10;Y[8]=Years/10%10;Y[9]=Years%10;//Y[6]=Years/1000;//Y[7]=Years%1000/100;//DispBuf[8]=Years%100/10;//DispBuf[9]=Years%10;Y[10]=Months/10;Y[11]=Months%10;Y[12]=Day/10;Y[13]=Day%10;Y[14]=':';Y[15]='.';Y[0]=Table[Y[0]];//查表取字元Y[1]=Table[Y[1]];Y[2]=Table[Y[2]];Y[3]=Table[Y[3]];Y[4]=Table[Y[4]];Y[5]=Table[Y[5]];Y[6]=Table[Y[6]];//查表取字元Y[7]=Table[Y[7]];Y[8]=Table[Y[8]];Y[9]=Table[Y[9]];Y[10]=Table[Y[10]];Y[11]=Table[Y[11]];Y[12]=Table[Y[12]];Y[13]=Table[Y[13]];write_Directive(0x80+0x04);//第一行,第五個位置地址
write_Data(Y[0]);//第一行,第五個位置write_Data(Y[1]);//第一行,第六個位置
write_Data(Y[14]);//第一行,第七個位置
write_Data(Y[2]);//第一行,第八個位置write_Data(Y[3]);//第一行,第九個位置
write_Data(Y[14]);//第一行,第十個位置
write_Data(Y[4]);//第一行,第十一個位置write_Data(Y[5]);//第一行,第十二個位置
write_Directive(0x80+0x43);//第二行,第四個位置地址
write_Data(Y[6]);//第二行,第四個位置write_Data(Y[7]);//第二行,第五個位置write_Data(Y[8]);//第二行,第六個位置write_Data(Y[9]);//第二行,第七個位置
write_Data(Y[15]);//第二行,第八個位置
write_Data(Y[10]);//第二行,第九個位置write_Data(Y[11]);//第二行,第十個位置
write_Data(Y[15]);//第二行,第十一個位置
write_Data(Y[12]);//第二行,第十二個位置write_Data(Y[13]);//第二行,第十三個位置}void key_set() //時間按鍵設置{if(s1 == 0){   delay(20);   if(s1 == 0)   {    set_2++;    while(!s1);    if(set_2 == 8)    {     set_2 = 0;    }   }}}void set_time()   //設置時間函數{   if(set_2==1)     {      RC0=1;     }      if(set_2==2)          ////s2即RB1按1次調秒     {     Seconds=incone(Seconds);     if(Seconds>59)      {       Seconds=0;      }    Seconds=decone(Seconds);    if(Seconds<0)      {       Seconds=59;      }      }    if(set_2==3)             ////s2即RB1按2次調分    {     Minutes=incone(Minutes);     if(Minutes>59)       {        Minutes=0;       }    Minutes=decone(Minutes);    if(Minutes<0)       {       Minutes=59;       }     }    if(set_2==4)             ////s2即RB1按3次調時   {    Hours=incone(Hours);    if(Hours>23)    {     Hours=0;    }    Hours=decone(Hours);    if(Hours<0)    {     Hours=23;    }   }       if(set_2==5)          ////s2即RB1按4次調天     {     Day=incone(Day);     if(Day>31)      {       Day=1;      }    Day=decone(Day);    if(Day<1)      {       Day=31;      }     }    if(set_2==6)             ////s2即RB1按4次調月    {     Months=incone(Months);     if(Months>12)       {        Months=1;       }    Months=decone(Months);    if(Months<1)       {        Months=12;       }     }    if(set_2==7)             ////s2即RB1按5次調年   {    Years=incone(Years);    if(Years>2050)    {     Years=1986;    }    Years=decone(Years);    if(Years<1986)    {     Years=2010;    }   }   }
int incone(int n)   //加「1」函數{ if(s2==0)  {    delay(20);   if(s2==0)   {    n++;     while(!s2);     write_Data_String();   }  }}
int decone(int m)    //減「1」函數{ if(s3==0) {   delay(20);   if(s3==0)   {    m--;    while(!s3);    write_Data_String();   } }}void main(){init();while(1)   {   key_set();   set_time();   write_Data_String();   }}

⑶ JavaScript 製作年歷,可以實現讀取年份,但是出不來年歷

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
var year=parseInt(prompt('輸入年份','2018'));
document.write(calender(year));
function calender(y){
var html='';
for(var m=1;m<=12;m++){
html+='<table>';
html+='<tr><th colspan="7">'+y+'年'+m+'月</th></tr>';
html+='<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>';
var w= new Date(y,m-1,1).getDay();
html+='<tr>';
if(w)html+='<td colspan="'+w+'"></td>';
var max = new Date(y,m,0).getDate();
for(var d=1;d<=max;d++){
html+='<td>'+d+'</td>';
if(w==6){
html+='</tr>';
if(d<max)html+='<tr>';
}
w=(w+1)%7;
}
html+='</table>';
}
return html;
}
</script>
</body>
</html>

⑷ 用C語言怎麼編寫萬年歷

C語言編寫萬年歷的源代碼如下:

#include <stdio.h>

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

int main()

{

char wk[7][3] = {{"天"},{"一"},{"二"},{"三"},{"四"},{"五"},{"六"}};

int year, month, day, w;

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

w = week(year, month, day);

printf("%d年%d月%d日 星期%s", year, month, day, wk[w]);

}

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

{

static int r[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};

int c,w;

y %= 400;

if ((y==0||y%4==0&&y%100!=0)&&m<3)

c = 5;

else

c = 6;

w = (y+y/4-y/100+r[m]+d+c)%7;

return w;

}

(4)web輸入指定年份生成年歷擴展閱讀

電子時鍾C語言版的源代碼如下:

#include<stdio.h>

#include<time.h>

#include<string.h>

int main()

{

char str[50];

time_t t;

struct tm *nt;

while(1)

{

system("cls");//清屏函數

t=time(NULL);

nt=localtime(&t);

strftime(str,50,"%Y-%m-%d %H:%M:%S 「,nt);

printf("現在時刻:%s ",str);

}

getch();

return 0;

}

⑸ C語言程序設計;"已知2000年1月1日為星期六,請輸入任一年的年份後,列印該年的年歷" 怎麼設計啊,速求老師

C語言程序如下:

#include<stdio.h>

#defineYES1/*定義符號常數「是」*/

#defineNO0/*定義符號常數「否」*/

/*函數isleap():判斷某年是否閏年*/

intisleap(intyear)

{

intleap=NO;

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

leap=YES;

returnleap;

}

/*函數week_of_newyears_day():求元旦是星期幾*/

intweek_of_newyears_day(intyear)

{

intn=year-1900;

n=n+(n-1)/4+1;

n=n%7;

returnn;

}

intmain(intargc,char*argv[])

{

intyear,month,day,weekday,len_of_month,i;

printf(" 請輸入某年年份:");

scanf("%d",&year);

printf(" 請輸入某年1月1日:");

scanf("%d",&weekday);

/*因為你的要求是已知2000年1月1日是星期六,所以這里不用week_of_newyears_day去求星期六了*/

/*weekday=week_of_newyears_day(year);求元旦是星期幾*/

printf(" %d年 ",year);/*列印年份*/

for(month=1;month<=12;month=month+1)/*列印12個月的月歷*/

{

printf(" %d月份 ",month);

printf("------------------------------------------------------ ");

printf("星期日星期一星期二星期三星期四星期五星期六 ");

printf("------------------------------------------------------ ");

for(i=0;i<weekday;i=i+1)/*找當月1日的列印位置*/

printf("");

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

len_of_month=30;

elseif(month==2)

{

if(isleap(year))

len_of_month=29;

else

len_of_month=28;

}

else

len_of_month=31;

for(day=1;day<=len_of_month;day=day+1)/*列印當月日期*/

{

printf("%2d",day);

weekday=weekday+1;

if(weekday==7)/*打滿一星期應換行*/

{

weekday=0;

printf(" ");

}

}

printf(" ");/*打完一月應換行*/

}

return0;

}

運行效果如圖

⑹ 、電子萬年歷:用C語言設計一個年歷系統,功能要求: (1)輸入任一年將顯示出該年的所有月份日期,對應的

/*
1、閏年的演算法:
如果某年能被4整除但不能被100整除,
或者能被400整除,
則該年是閏年.
用表達式表示就是
(year %4 == 0 && year%100 != 0) || (year%400 == 0)

2、計算某一天是星期幾:
已知1900年的1月1號為星期一,
然後就可以用某一天和1900年的1月1號相差的天數對7取余來求星期,
本題是用的公元1年的1月1號作為基準
*/
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
int IsLeapYear(int); //函數定義
void 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("Please enter the year: ");
scanf("%d",&year); //輸入年份

while(Year_Start < year) //從公元1年開始執行while循環, 該年的一月一號為星期一
{
if( IsLeapYear( Year_Start ) )
Per_Year_Days = 366; //如果是閏年, 則一年有366天
else
Per_Year_Days = 365; //如果不是閏年, 則一年有365天

Year_days = Year_days + Per_Year_Days; //Year_days為從公元1年到輸入年份的前一年的天數的總和
Year_Start++;
}

for( temp = 1; temp <=12; temp++ ) //temp從1到12, 對應一年內12個月
{
switch( temp ) //用switch語句將temp和12個月對應起來
{
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; //每個星期有7天, 故用每年的天數對7取余
printf("Mon\tTue\tWed\tThu\tFri\tSat\tSun\n");
if( i != 0 ) //如果余數不為零
for( temp_i = 0; temp_i < i; temp_i++)
printf("\t"); //則列印空格(這里用\t代替空格, 更加美觀), 空格數為i
day = 1; //初始化day為1, 為下面的while循環做准備
if( IsLeapYear(year) && temp == 2) //如果輸入的年份是閏年, 並且月份為2
while( day <= month_day[12] ) //day為一循環變數, 取值為1-365(閏年的話為1-366)
{
if( day >1 ) //如果天數大於一
if( Year_days % 7 == 0 ) //如果是星期日, 則換行
printf("\n");
if( day >= 10 )
printf("%d\t",day); //列印天數+空格
else
printf("%d\t",day);
Year_days++;
day++;
}

else //如果不滿足"輸入的年份是閏年, 並且月份為2"
while (day <= month_day[temp-1])
{
if( day > 1 )
if( Year_days % 7 == 0 )
printf("\n");
if( day >=10 )
printf("%d\t",day);
else
printf("%d\t",day);
Year_days++;
day++;
}
printf("\n");
if( getch() == 'q' ) //如果輸入為q, 則退出程序
exit(0);
}
getch(); //每按一次鍵, 列印一個月份
}

int IsLeapYear( int year )
{
//判斷是否是閏年, 是則返回1, 否則返回0
if ((year %4 == 0) && (year % 100 != 0) ||
(year % 400 == 0) )
return 1;
else
return 0;
}

⑺ 用C語言設計一個年歷系統,功能要求: (1)輸入任一年某一天輸出這一天的具體日期

#include<stdio.h>
struct day
{
int year;
int month;
int days;
}Day;
void main()
{
int tian(struct day );

int t;
printf("請輸入 年月日 :\n");
scanf("%d%d%d",&Day.year,&Day.month,&Day.days);
t=tian(Day);
printf("%5d年%3d月%d日是該年的第%d天",Day.year,Day.month,Day.days,t);
}

int tian(struct day day1)
{
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int i,j,sum=0;
i=(((day1.year%4==0)&&(day1.year%100!=0))||(day1.year%400==0));
for(j=0;j<day1.month;j++)
sum+=a[i][j] ;
sum=sum+day1.days;
return sum;
}
現在大幾了,呵呵,如果對編程感興趣的話,請加入網路 計算機精英論壇俱樂部,呵呵,有什麼不會的都可以請教,下面是鏈接
http://tieba..com/club/10868002/invite/join/c=
期待更多的人加入其中.....

⑻ 用c語言編寫萬年歷,要求輸出任意一年的某月,能顯示出這個月的日歷

1、首先要判斷一個年份是閏年還是平年,用一個子程序來做。

⑼ c語言設計萬年歷 輸入任意年份,輸出該年12個月份 輸入任意年份月份,輸出該年月日歷

#include<stdio.h>
#include<time.h>
#include<malloc.h>
enumMONTH{January=1,February,March,April,May,June,July,August,September,October,November,December};
structtm*getDate(intyear,intmon);
voidprintTime(time_ttheTime,intyear);
intmain()
{
enumMONTHmon;
time_ttheTime;
structtm*date;
intyear,m;
while(1)
{
printf("輸入任意年份及月份: ");
scanf("%d%d",&year,&m);
if(m<1||m>12)
{
printf("月份超出范圍,重新輸入! ");
continue;
}
mon=m;
break;
}
date=getDate(year,mon);
theTime=mktime(date);//從1900年至此的秒數
printTime(theTime,year);
return0;
}
structtm*getDate(intyear,intmon)
{
structtm*date=(structtm*)malloc(sizeof(structtm));
date->tm_sec=0;
date->tm_min=0;
date->tm_hour=0;
date->tm_year=year-1900;
date->tm_mon=mon-1;
date->tm_mday=1;
date->tm_yday=0;
returndate;
};
voidprintTime(time_ttheTime,intyear)
{
inty,m,wday,i,j;
charwd[7][7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
structtm*date;
date=localtime(&theTime);
y=date->tm_year+1900;
m=date->tm_mon+1;
wday=date->tm_wday;
printf(" ------------------開始生成日歷---------------------- ");
printf("%d年%02d月 ",y,m);
i=0;
for(j=0;j<7;j++)
{
printf("%s",wd[wday++]);
if(wday>6)
wday=0;
}
printf(" ");
while(1)
{
if(date->tm_mon+1>m)
{
printf(" ");
break;
}
printf("%02d日",date->tm_mday);
if(++i==7)
{
printf(" ");
i=0;
}
theTime+=24*60*60;
date=localtime(&theTime);
}
}