0

変数:char date[11];があり、その中に現在の日付を入れる必要があります29/06/2012

だから私は次のようなことをします:

printf ("%s\n", date);

出力は次のようになります。29/06/2012

のような単語で日付を印刷するオプションしか見つかりFri, June 2012ませんでしたが、実際の日付を数字で印刷するオプションは見つかりませんでした。

では、現在の日付を数値で出力するにはどうすればよいでしょうか?

4

2 に答える 2

5

この関数strftimeを参照できます。使い方はお任せします:-)

あなたはそれを検索したと主張したので、私は答えを提供します:

// first of all, you need to include time.h
#include<time.h>

int main() {

  // then you'll get the raw time from the low level "time" function
  time_t raw;
  time(&raw);

  // if you notice, "strftime" takes a "tm" structure.
  // that's what we'll be doing: convert "time_t" to "tm"
  struct tm *time_ptr;
  time_ptr = localtime(&raw);

  // now with the "tm", you can format it to a buffer
  char date[11];
  strftime(date, 11, "%d/%m/%Y", time_ptr);

  printf("Today is: %s\n", date);
}
于 2012-06-29T20:34:53.057 に答える
3

strftimeの一部を探していますtime.h。を渡す必要がありますstruct tm *

あなたの例では、フォーマット文字列は次のようになります: "%d/%m/%Y"、かなり一般的なケースです。

ドキュメントのコードに基づく:

char date[11];
time_t t;
struct tm *tmp;

t = time(NULL);
tmp = localtime(&t);
if (tmp != NULL)
{
    if (strftime(date, 11, "%d/%m/%Y", tmp) != 0)
        printf("%s\n", date);
}
于 2012-06-29T20:35:00.043 に答える