GNU touch コマンドを MinGW でビルドして Windows で動くようにする予定です。まだ開発途中ですが、少しずつソースを公開していきます。これらをビルドするには Windows 上に Cygwin 1.7.35 以降と gcc、mingw64-i686 等の開発用パッケージが必要になります。
2025-W42 現在、関数のテスト用に作成した adjustday、gettime、leapdays、localtime、mktime コマンドが使えます。localtime と mktime は同名の POSIX 関数を自作しました。関数内では #define
で Cygwin と MSVCRT(msvcrt.dll)の関数をラップした部分を分けてあります。それぞれ、make cygwin
、make msvcrt
で cygwin、msvcrt ディレクトリ配下にコマンドが作成され、同じ引数を使って動作の違いを確かめられます。
コマンドの引数に年、月、日(負の値も可能)を指定すると、月と日を正しい範囲に修正して結果を表示します。Cygwin と MSVCRT にはこのコマンドがありません。
現在の時刻を 1970-01-01 00:00 UTC からの秒数で表示します。-N
オプションを指定すると、100 ナノ秒単位の小数部分を表示します。MSVCRT にはこのコマンドがありません。
コマンドの引数に2つの年(負の値も可能)を指定すると、その期間に含まれるうるう日の数を表示します。Cygwin と MSVCRT にはこのコマンドがありません。
コマンドの引数に 1970-01-01 00:00 UTC からの秒を指定(小数部分も可能)すると、ローカル時刻に変換して年、月、日、時、分、秒を表示します。MSVCRT のコマンドは - UTC オフセットより小さい秒を指定できません。
mktime コマンド を参照。
日付や時刻を表示するコマンドでは曜日名、週番号、年内日数、タイムゾーン情報を表示したり、元号、ISO 8601 の形式で表示したりすることができます。詳しくは --help
を付けてコマンドを実行してください。
コマンドの最初の引数に負の値を指定する場合、引数の前に --
を指定する必要があります。
このプログラムは GPL v2.0 で公開されています。