首页 > 解决方案 > 在erlang中创建日历程序

问题描述

我正在尝试在 Erlang 中创建日历程序,但我无法完成代码的逻辑。我用 C 语言尝试了相同的日历程序,它的工作原理是不准确的(即以天数为单位,将 a/c 打印到月份和年份)。

试过的代码:

#include<stdio.h>

int main()
{
  int year;
  int month, day,i;
  int days_in_month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  char *months[]=
  {
    " ",
    "               January",
    "               February",
    "               March",
    "               April",
    "               May",
    "               June",
    "               July",
    "               August",
    "               September",
    "               October",
    "               November",
    "               December" };

  printf("Please enter a year: ");
  scanf(" %d",  &year);
  if(((year%4==0) && (year%100!=0)) || (year%400==0))
  {
      days_in_month[2] = 29;
  }
  else
  {
    days_in_month[2] = 28;
  }

for(i= 1; i<=12; i++)
{
 
    printf("%s", months[i]);
    printf(" Sun  Mon  Tue  Wed  Thu  Fri  Sat\n" );
    for ( day = 1; day <= 1; day++ )
    {
        printf(" ");
    }
   

    for ( day = 1; day <= days_in_month[i]; day++ )
    {
      
      (!(day % 7))?printf("%2d", day ):printf("%2d", day);


      if ( ( day ) % 7 > 0 ){
            printf("   " );
        }
      else{
            printf("\n " );
    }
    }
     printf("\n " );
}
return 0;
}

以及一年(2020)和一个月的示例输出:

                      December
 Sun  Mon  Tue  Wed  Thu  Fri  Sat
  1    2    3    4    5    6    7
  8    9   10   11   12   13   14
 15   16   17   18   19   20   21
 22   23   24   25   26   27   28
 29   30   31   

标签: c

解决方案


推荐阅读