2008-01-01から1年間の記事一覧

DateTimeで利用できるロケール一覧

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

変数に適切な名前をつけるようにしよう

Perl › 読み物 変数をよい名前にするとプログラムが読みやすくなります。 個人的な意見になりますが、変数名のつけ方について自分の考えていることを書いておきます。 変数名は意味のあるものにする。 変数名はすべて小文字で、単語のつなぎ目は _ (アンダー…

DateTime::TimeZone タイムゾーン名一覧

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

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

特定の時刻を含むレコードを切り出すサンプルです。 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…

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

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

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

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

月末日を取得する

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関数は指定した日付をエポックからの経過秒に変換する関数ですが、存在しない日付を指定すると例外を投げます。 このことを利用す…

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

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

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

.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …

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 $…

reverse関数 - 配列または文字列の順序を逆順にする

Perl › 関数 › here reverse関数を使用すると、配列または文字列の順序を逆順にすることができます。reverse関数は配列に対して使用すると配列の順序を反転させますが、文字列に対して使用すると文字列を反転させます。 my $reversed = reverse $str; my @re…

ord関数 - ASCII文字を数値に変換

Perl › 関数 › here ord関数を使用すれば、ASCIIコードの文字を内部表現である数値に変換することができます。これはchr関数と反対の変換です。 my $ascii_code = ord $char; ord関数のサンプル ord関数を使って、ASCIIコードの文字を内部表現である数値に変…

chr関数 - 数値をASCIIに変換

Perl › 関数 › here chr関数を使用すると数値をASCII(アスキー)コードに対応する文字に変換することができます。第1引数にASCIIコードを指定するとそれに対応する文字が戻り値で返ります。これはord関数の逆の演算です。 my $char = chr $ascii_code; chr関…

crypt関数 - ダイジェストを作成してパスワードの照合を行う

Perl › 関数 › here crypt関数を使うと、パスワードをダイジェストにして保存しておくことができます。パスワードを平文で保存しておくと見られてしまいます。第一引数はパスワードです。第二引数はサルトという任意の文字列で、ダイジェストを解読されにく…

length関数 - 文字列の長さを取得

Perl › 関数 › here length関数を使用すると文字列の長さを取得するすることができます。 $ret = length $str; たとえば「abcde」という文字列の長さは5になります。 # 文字列の長さは5 my $length = length 'abcde'; 日本語の文字列の長さを正しく取得する …

Math::BigInt、Math::BigFloat - 大きな桁数を持つ数の計算

Perl › モジュール › here Perlの数値の有効桁数は15〜16桁くらいで、普通の演算ではこれ以上大きな数の演算を行うことができません。大きな桁の数値を扱いたい場合はMath::BigIntやMath::BigFloatを使用します。 大きな整数の演算 大きな整数の演算を行うに…

ceil関数 - 小数部を切り上げる

Perl › 関数 › here ceil関数を使用すると、小数点を切り上げることができます。 use POSIX 'ceil'; $ret = ceil $num; サンプル ceil関数を使ったサンプルです。 use strict; use warnings; use POSIX 'ceil'; my $num1 = 1.5; my $num2 = -1.5; print "(1)…

int関数 - 小数から整数部を取り出す

Perl › 関数 › here int関数を使用すると、小数点を含む数値の整数部を取り出すことができます。 $ret = int $num; 整数部というのは、小数から小数点以下の部分を取り除いた部分のことです。切り下げや切り上げとは異なります。たとえば「1.5」という小数の…

四捨五入を行う

Perl › 数値 › here 四捨五入を行うには、sprintf関数を使用します。フォーマット指定を、有効桁を指定して四捨五入したい場合は"%.3g"や"%.5g"のように指定し、小数点以下のある桁で四捨五入したい場合は"%.3f"や"%.5f"のように指定します。 # 小数点以下の…

浮動小数点を比較する

Perl › 数値 › 浮動小数点の比較 コンピュータは内部的には2進数を使って演算しているので、2進数で表現できない小数については計算の過程で誤差が生まれます。2進数の演算の過程で発生した誤差の影響を無視するためには、ある有効桁で数値を丸めて比較する…

log関数 - 対数を求める

Perl › 関数 › here log関数を使用すると、自然対数を求めることができます。また底(てい)の変換を利用すれば、任意の底の対数を計算できます。 自然対数を求める 自然対数を求めるにはlog関数を使用します。自然対数とは底がネイピア数eである対数のことで…

exp関数 - 自然対数の底 ネイピア数eを取得

Perl › 関数 › here exp関数を使用すると、自然対数の底 ネイピア数eを取得することができます。 # e my $exp = exp(1); # eの3乗 my $exp3 = exp(3); ネイピア数eを取得するにはexp関数に1を渡します。引数は、べき乗の指定になっているので、nを指定すれば…

Math::Trig - さまざまな三角関数

Perl › モジュール › here 三角関数関連の関数は標準関数としては、cos関数とsin関数しかありませんが、標準モジュールにMath::Trigという三角関数関連のモジュールがあります。簡単に内容を紹介します。 三角関数の逆数 逆数とは、分母と分子を入れ替えた数…