2008-10-01から1ヶ月間の記事一覧

ログから特定の時刻を含むレコードを切り出す

特定の時刻を含むレコードを切り出すサンプルです。 use strict; use warnings; print "(1)特定範囲の時刻を含むレコードを切り出す。\n"; my @records = ( '1 7:00:00 aaa', '2 8:00:00 iii', '3 9:00:00 uuu', '4 10:00:00 eee', '5 11:00:00 ooo', ); my …

n日後の日付を求める

n日後の日付を求めるには、n日を秒に変換してtime関数で取得した現在の時刻(エポックからの秒数秒)に加算します。加算した秒をlocaltime関数を使って、日付と時刻の表記に変換します。 use strict; use warnings; use Time::Local 'timelocal'; print "(1)n…

時刻の差を求める(時刻に日付を含む)

Perl › 日付・時刻 時刻に日付を含んでいる場合にその差を求めるにはTime::Localモジュールのtimelocal関数で、日付を含む時刻を秒に変換して差を求めます。 ログなどでは書式化された時刻が記述されていますので、その状態から時刻の差を求めるサンプルを作…

時刻の差を求める(24時間を越えない場合)

Perl › 日付・時刻 時刻の差を求めるには、まずhhmmssと表記されているものを秒に変換する必要があります。秒の差を求めた上で再度hhmmssの時刻表現に復元します。時刻の差を求めるサンプルです。 use strict; use warnings; print "(1)時刻の差を求める(24…

月末日を取得する

Perl › 日付・時刻 月末日を取得する関数のサンプルです。Time::Localモジュールのtimelocal関数を使って存在する日付を確かめています。 use strict; use warnings; print "(1)月末日を取得する。\n"; my $end_of_month_200802 = end_of_month(2008, 2); pr…

Time::Local - 時刻情報をエポック秒に変換

Perl › モジュール › here Time::Localモジュールはlocaltime関数、gmtime関数とは逆向きの日付・時刻の変換を行うためのモジュールです。日付と時刻(ローカル時間)をエポック秒に変換するにはTime::Localモジュールのtimelocal関数を使用します。 use Time:…

存在する日付かどうかを判定する

Perl › 日付・時刻 存在する日付かどうかを簡単に判定するには、Time::Localモジュールを利用します。 Time::Localのtimelocal関数は指定した日付をエポックからの経過秒に変換する関数ですが、存在しない日付を指定すると例外を投げます。 このことを利用す…

閏年(うるうどし)かどうかを判定する

Perl › 日付・時刻 閏年の判定方法は以下のようになります。 まず、4で割り切れるかどうかを判定します。4で割り切れるということが閏年であることの必要条件です。4で割り切れなければ閏年ではありません。 閏年(うるう年)かどうかを判定するサンプルです。…

Google Calendar Data API で祝日を取得する

Perl › 日付・時刻 祝日というのは人間が決めたものなので非常に扱いにくいものです。春分、秋分という前年の2月に決まる祝日や、振替休日などもあります。 今回のサンプルではGoogleがGoogle Calendar Data APIで提供してくれている日本の祝日のデータを取…

gmtime関数 - 現在の日付と時刻(協定世界時)を取得する

Perl › 関数 › gmtime gmtime関数を使用すると、現在の日付と時刻を協定世界時で取得するにはを使用します。gmtimeという名前ですが、現在はグリニッジ標準時(GMT)を取得する関数ではなく協定世界時を取得する関数になっています。 # 秒 分 時 日 月 年 曜日…

localtime関数 - 現在の日付・時刻を取得する

Perl › 関数 › here localtime関数を使用すると、現在の日付と時刻を取得することができます。各地域にあわせたローカル時間を取得できます。 # 秒 分 時 日 月 年 曜日 年初か 夏時間を # らの 適用して # 経過日 いるか my ($sec, $min, $hour, $mday, $mo…

time関数 - エポックから現在までの経過秒数を取得

Perl › 関数 › here time関数を使用すると、エポックから現在までの経過秒数を取得することができます。エポックとは時刻の基準となるある時点のことです。多くのシステムでは、協定世界時の 1970年1月1日0時0分0秒00:00:00がエポックとなります。 my $sec_f…

join関数 - 区切り文字で配列を結合

Perl › 関数 › here join関数を使用すると、区切り文字を指定して配列を結合することができます。 my $joined = join(',', @array); 第1引数は、区切り文字です。この例では区切り文字としてカンマを指定しています。第2引数以降で与えられた配列に含まれる…

sprintf関数 - 文字列の書式指定

Perl › 関数 › here sprintf関数を使用すると書式指定した文字列を作成することができます。数値の左側を0で埋めて出力したい場合や、浮動小数点の少数の桁数を指定したい場合などに、sprintf関数を使うと便利です。 my $str = sprintf("%08d", $num1); my $…