创建一个程序,根据EST时区打印出当天的当天

时间:2014-03-19 05:18:47

标签: c++ c date time utc

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

#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;
}

我知道时间(NULL)返回自1970年1月1日以来经过的秒数。我也明白jan 1是星期四。我也知道UTC时区比美国东部时间早5个小时,但我不确定如何考虑所有这些因素。

2 个答案:

答案 0 :(得分:0)

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

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

%A将为您提供一周中的某一天。

答案 1 :(得分:0)

您可以像这样使用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: %s\n", buffer);

   return 0;
}

如果需要自定义工作日名称,您也可以手动使用info->tm_wday,表示星期几,范围为0到6。