创建一个程序,根据EST时区打印出当前星期几



到目前为止我创建的代码是:

#include <stdio.h>
#include <time.h>
int main()
{

    int days, rmd;
    time_t seconds;
    seconds = time(NULL);
    days = (seconds/(60*60*24));

      rmd=days%7;
          if(rmd==4){
              printf("Monday n");
          }
          if(rmd==5){
              printf("Tuesday n");
          }
          if(rmd==6){
              printf("Wednesday n");
          }
          if(rmd==0){
              printf("Thursday n");
          }
          if(rmd==1){
              printf("Friday n");
          }
          if(rmd==2){
              printf("Saturday n");
          }
          if(rmd==3){
              printf("Sunday n");
          }
return 0;
}

我理解time(NULL)返回自1970年1月1日的epoch以来所经过的秒数。我也知道1月1日是星期四。我也知道UTC时区比EST早5个小时,但我不确定究竟如何考虑所有这些因素。

如果可能(例如,您不受家庭作业的限制而不能使用它),请考虑使用stftime:

http://www.cplusplus.com/reference/ctime/strftime/

%A会告诉你星期几

您可以这样使用localtime()strftime():

#include <stdio.h>
#include <time.h>
int main()
{
   time_t rawtime;
   struct tm *info;
   char buffer[100];
   time(&rawtime);
   info = localtime(&rawtime);
   strftime(buffer, sizeof(buffer), "%A", info);
   printf("Current weekday: %sn", buffer);
   return 0;
}

如果需要自定义星期名称,也可以手动使用"info->tm_wday",表示星期几,取值范围为0 ~ 6。

最新更新