万年历,可查看任何日期对应的星期

万年历,可查看任何日期对应的星期,第1张

万年历,可查看任何日期对应的星期,第2张

注意:以下程序需要以命令行格式运行。例如,编译后的可执行文件被命名为filename。如果您想查看某个2002/02/01,请输入文件名2002/01,如果您想查看2002年1月,请输入文件名2002/01/0。

/* * *万年历* * */

/* *命令行:
如果查看某一天,比如2001年12月28日
如果查看某一月,比如, calen 2001/12/0或Calen 2001/12
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2。 dy是当年1月1日到2000年1月1日的“周差”
3。dm是那个月的前一个月造成的“周差”
4。m2是二月
* * * * * *造成的“周差”。

main(int x,char * * date)
{
int year = 0,month=0,day=0,week
int d,I,dm,dy,m2;
char WEEK[9];
if(x = = 1)
{
printf(" \ n错误!您忘记输入要查看的日期\ n ");
退出(0);
}
I = 0;d =-1;
while(date[1][I])
{
if((date[1][I]= = '/' | | date[1][I]= = ',')& & d = =-1){ d = 0;i++;继续;}
if((date[1][I]= = '/' | | date[1][I]= = '。')& & d = = 0){ d = 1;i++;继续;}
if(d = =-1)year = year * 10+(date[1][I]-' 0 ');
if(d = = 0)month = month * 10+(date[1][I]-' 0 ');
if(d = = 1)day = day * 10+(date[1][I]-' 0 ');
i++;
}
if(month 12)
{ printf(" \ n错误!输入的月份无效\ n ");退出(0);}
if(year = = 2000){ dy = 0;m2 = 1;goto la _ 100}
if(年份> 2000) d=(年份-1-2000)/4-(年份-1-2000)/100+(年份-1-2000)/400+1;
else d =(2000年)/4-(2000年)/100+(2000年)/400;
dy =(2000年)+d;/* * *当年1月1日到2000年1月1日的“周差”* */
if((year % 4 = = 0 & & year % 100!= 0)| |(year % 100 = = 0 & & year % 400 = = 0))
m2 = 1;否则m2 = 0;/* * *是当年盈利吗* */

la_100: /**** la_100 ****/

  /*** 该月以前的月所引起的 " 星期差 " ***/
  switch (month)
  {
  case 1: dm=0; month=31; break; /*** month 在此存放该月天数 ***/
  case 2: dm=3; month=d==1? 29:28; break;
  case 3: dm=3+m2; month=31; break;
  case 4: dm=6+m2; month=30; break;
  case 5: dm=1+m2; month=31; break;
  case 6: dm=4+m2; month=30; break;
  case 7: dm=6+m2; month=31; break;
  case 8: dm=2+m2; month=31; break;
  case 9: dm=5+m2; month=30; break;
  case 10: dm=m2; month=31; break;
  case 11: dm=3+m2; month=30; break;
  case 12: dm=5+m2; month=31; break;
  }
  if (daymonth)
  { printf ("\n ERROR! the entered DAY is invalid\n"); exit (0); }
  week=(dy+dm+day-1+6)%7; if(week

  if (day>0) /*** 判断查看类型 ***/
  {
  switch (week)
  {
  case 0: strcpy (WEEK,"SUNDAY"); break;
  case 1: strcpy (WEEK,"MONDAY"); break;
  case 2: strcpy (WEEK,"TUESDAY"); break;
  case 3: strcpy (WEEK,"WEDNESDAY"); break;
  case 4: strcpy (WEEK,"THURSDAY"); break;
  case 5: strcpy (WEEK,"FRIDAY"); break;
  case 6: strcpy (WEEK,"SATURDAY"); break;
  }
  printf ("\n this day is %s \( %d \)\n\n OK!\n",WEEK,week);
  }
  else
  {
  week=++week%7;
  printf ("\n the calender of this month as following\n");
  printf ("\n *********************************\n");
  printf (" SUN MON TUE WEN THU FRI STA\n");
  for (i=0;i  for (i=1;i

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 万年历,可查看任何日期对应的星期

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情