2月 09

こんにちは
pinkrootこと兼城です。
私は普段、GTDという手法を用いてタスク管理を行っています。
GTDについてはこちら
で、じゃあ具体的にどうやって管理をしているかということですが、
基本はテキストファイルです。
毎週、週次レビューの度に
List_20110209.txt
Next_20110209.txt
Will_20110209.txt
Wait_20110209.txt
というような4つの新規ファイルを作成し、その中にタスクを書き込んでいます。
前週にやり残した仕事があれば、新しいファイルにコピペします。
現状だと、Listは毎週開いてはコピペして、という感じです。
基本的には上記の方法で困ってなかったのですが、
毎週新たにファイルを作り、名前をつけるのが面倒だなと感じるようになったので、
久しぶりにC言語の知識を呼び覚ましながらプログラム化することにしました。
具体的にやりたいこと
やりたいことはシンプルです。作成したプログラムファイル(exe)をクリックすると、その日の日付を含んだファイル名で
4つの新規テキストファイルが生成されればいいのです。
というわけで作成
サクっと終わるだろう、と思っていたのもつかの間。time.hの使い方を失念。
私にC言語を教えてくださった某M教授に申し訳ないです。
というわけでググりながらガリガリ。
結果的に20分程度かかってしまいました(´・ω・)
というわけでソースコード↓
ソースコード file_creator.c
/*******************************************************
2011.02.09 作成
GTD用のファイルを作成するためだけのプログラム
********************************************************/
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t timer; // 日時を取得するための何か
struct tm *date; // 日時が格納される構造体らしい
char today_date[9]; // 今日の日付。形式はYYYmmmddd
int i; // ループ用変数
char filename[4][5] = {"List", "Next", "Will", "Wait"}; // 作成されるファイル名の先頭部
char next_filename[20]; // 次に作成されるファイル名
timer = time(NULL); // 何かを基準として、そこからの経過時間を取得
date = localtime(&timer); // 経過時間を、時間を表す構造体dateに変換
strftime(today_date, 9, "%Y%m%d", date); // dateを元に、YYYYmmddの書式でtoday_dateに格納
//ファイル名の先頭と、今日の日付をくっつけた名前でtxtファイルを作成
for (i = 0; i < 4; i++){
sprintf(next_filename, "%s_%s.txt", filename[i], today_date);
fopen(next_filename, "a"); // 追記モードでfopenなので、空のファイルが新規作成される。
}
return (0);
}
むー
time.hを用いて日付を取得するのって、わざわざ構造体使ったりstrftime使ったりしたっけ?
なんだか冗長なことをやってしまった感もありますが、
無事に動いてるので今回は妥協点ということで。
それにしても
久しぶりに書くとC言語でも忘れまくりですね(´・ω・)
今度ガッツりとリハビリしましょうそうしましょう。
参考にしたサイト
C言語講座:現在時刻と年月日と曜日を表示お世話になりました。
関連するエントリ
タグ: C言語, GTD, How-To, タスク管理, プログラミング, ライフハック, 備忘録, 製品開発
2月 9th, 2011 at 17:17
バッチファイルなら
C:\>type test.bat
copy nul List_%date:/=%.txt
copy nul Next_%date:/=%.txt
copy nul Will_%date:/=%.txt
copy nul Wait_%date:/=%.txt
と4行ですむかな。
2月 9th, 2011 at 19:01
こっちの方がバッチファイルっぽいかな。
C:\>type test.bat
for %%s in (List Next Will Wait) do copy nul %%s_%date:/=%.txt
2月 15th, 2011 at 01:01
なんとまぁシンプルなこと。
さすがです。
こういうのがサクッと思いつける様に日々精進したいと思います。