本文介绍了C程序找到周定日期的天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法找出给定日期的星期几,在短短一行C $ C $的C?

Is there a way to find out day of the week given date in just one line of C code?

例如

由于19-05-2011(DD-MM-YYYY)给我周四

Given 19-05-2011(dd-mm-yyyy) gives me Thursday

推荐答案

一个单行的可能性不大,但的可以用来解析您的日期格式和结构TM 参数可以查询其 tm_wday 成员。

A one-liner is unlikely, but the strptime function can be used to parse your date format and the struct tm argument can be queried for its tm_wday member.

int get_weekday(char * str) {
  struct tm tm;
  if (strptime(str, "%d-%m-%Y", &tm) != NULL) {
    time_t t = mktime(&tm);
    return localtime(&t)->tm_wday; // Sunday=0, Monday=1, etc.
  }
  return -1;
}

或者你可以连接code这些规则做一些算术很长的单行:

Or you could encode these rules to do some arithmetic in a really long single line:


  • 1900年1月1日是个周一。

  • 三十天都有九月,四月,六月和十一月;剩下都是31,单独保存二月,其中有28,风雨无阻,和闰年,29。

  • 闰年发生在任何一年能被4整除,但不能在一个世纪,除非它是被400整除。

这篇关于C程序找到周定日期的天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 05:40