トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

C言語の基本的なこと

文字列を数字に

atoi(char *)

を使う

数字を文字列に

sprintf(buf, "%d", 100);

現在の日付、時間

time() で 現在日付、時刻を取得し、localtime でtm構造体に入れる。
tm構造体

struct tm {
  int tm_sec;      /* 秒 [0-61] 最大2秒までのうるう秒を考慮 */
  int tm_min;      /* 分 [0-59] */
  int tm_hour;     /* 時 [0-23] */
  int tm_mday;     /* 日 [1-31] */
  int tm_mon;      /* 月 [0-11] 0から始まることに注意 */
  int tm_year;     /* 年 [1900からの経過年数] */
  int tm_wday;     /* 曜日 [0:日 1:月 ... 6:土] */
  int tm_yday;     /* 年内の通し日数 [0-365] 0から始まることに注意*/
  int tm_isdst;    /* 夏時間が無効であれば 0 */
};

使用例

#include <time.h>

int main(){
  struct tm *date;
  time_t now;
  int year, month, day;
  int hour, minute, second;
  
  /* 現在の日時を取得 */
  time(&now);
  date = localtime(&now);
  
  year = date->tm_year + 1900;
  month = date->tm_mon + 1;
  day = date->tm_mday;
  
  hour = date->tm_hour;
  minute = date->tm_min;
  second = date->tm_sec;

  printf("%04d/%02d/%02d %02d:%02d:%02d\n",
    year,
    month,
    day,
    hour,
    minute,
    second);
}

実行時間を測定

#include <time.h>
#include <sys/time.h>
#include <stdio.h>

double gettimeofday_sec()
{
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return tv.tv_sec + (double)tv.tv_usec*1e-6;
}

int main()
{
    int i;
    int n = 0;
    double t1,t2;

    t1 = gettimeofday_sec();
    for (i = 0; i < 100000; i++)
        n *= i;
    t2 = gettimeofday_sec();
    printf("time = %10.30f\n", t2 - t1);

    t1 = gettimeofday_sec();
    for (i = 0; i < 10000000; i++)
        n *= i;
    t2 = gettimeofday_sec();
    printf("time = %10.30f\n", t2 - t1);
}
[カテゴリ: プログラミング言語 > C]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2009年05月12日 19時53分05秒