[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/30 20:58 / Filesize : 246 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

連番のH画像を一気にダウンロードする



41 名前:名無しさん@お腹いっぱい。 [2001/01/13(土) 01:54]
>>39

日付関係の便利なライブラリがある言語を使えばいいと思う
(RubyとかJavaとか)が、即席でCでジェネレータを書いてみた。
ただし仕様は限りなく手抜き。
日付フォーマット変えたいときはPRINTFMTをstrftime(3)で
指定可能な適当なものに変更してくれ。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define PRINTFMT "%Y%m%d"

int gendate(const char *from, const char *to)
{
  const char *fmt = "%d%c%d%c%d";
  int i, y, m, d;
  char junk[2];
  struct tm local;
  time_t secs[2];
  char buff[24];
  const char *p;

  memset(&local, 0, sizeof(local));

  for (i = 0; i < 2; ++i) {
    p = i ? to : from;
    if (sscanf(p, fmt, &y, &junk[0], &m, &junk[1], &d) != 5) {
      fprintf(stderr, "Invalid date format: %s\n", p);
      return 2;
    }
    local.tm_year = y - 1900;  /* XXX */
    local.tm_mon = m - 1;
    local.tm_mday = d;
    secs[i] = mktime(&local);
    if (secs[i] == -1) {
      fprintf(stderr, "Can't handle date: %s\n", p);
      return 2;
    }
  }

  while (difftime(secs[0], secs[1]) <= 0) {
    strftime(buff, sizeof buff, PRINTFMT, localtime(&secs[0]));
    puts(buff);
    secs[0] += 60 * 60 * 24;
  }
  return 0;
}

int main(int argc, char **argv)
{
  if (argc < 3) {
    fprintf(stderr, "usage: %s from to\n", argv[0]);
    return 1;
  }
  return gendate(argv[1], argv[2]);
}








[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef