[Mew-dist 3003] Re: imls の中に曜日は入らないでしょうか?
Yuuichi Teranishi 寺西裕一
teranisi at example.com
1997年 11月 21日 (金) 10:51:20 JST
寺西@NTT情報研です。
Fri, 21 Nov 1997 04:17:30 +0900頃に
Masahiro EGUCHI <egu at example.com> さんより送信された
Subject:『[Mew-dist 2999] imlsの中に曜日は入らないでしょうか?』の
メッセージより:
egu> 昔、scanの出力を使っていた頃はscanのフォームを使って漢字の曜日を出して
egu> いたのですが、imlsになってから曜日が出せなくなってしまって少し困ってい
egu> ます。何か、いい方法がありましたら教えていただけないでしょうか?
im の dot.im/scan.sbr.sample1 というのを
scan.sbr として ~/.im におき、
~/.im/Config で
Form=%5n%M%m%d(%W) %h:%E %-16A %-30S %b
みたいなかんじで指定すると日本語で曜日を出せるようです。
でも scan.sbr.sample1 そのままだと Date フィールドに曜日が無いときに
?? などと出てしまうので、ぼくはこのように変更して使っています。
$symbol_table{'W'} = 'wdate:';
$NEEDSAFE_HASH{'wdate:'} = 1; # if the field contains JIS characters
@month_days = (undef,31,28,31,30,31,30,31,31,30,31,30,31);
@month_days_uruu = (undef,31,29,31,30,31,30,31,31,30,31,30,31);
@wday_string = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
sub guess_wday {
local ($year, $month, $day) = @_;
local ($y1, $days, @days_of_month);
$y1 = $year - 1;
$days = ($y1 * 365) + int ($y1 / 400) + int ($y1 / 4) - int ($y1 /100);
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
@days_of_month = @month_days_uruu;
} else {
@days_of_month = @month_days;
}
foreach $p (1..($month-1)) {
$days += $days_of_month [$p];
}
$days += $day;
return $wday_string[$days%7];
}
sub scan_sub {
local ($href) = shift;
local ($wday);
if ((${$href}{'date'} =~ /([A-Z][a-z][a-z]), /)) {
$wday = $+;
} else {
$wday = guess_wday (${$href}{'year:'},
${$href}{'month:'},
${$href}{'mday:'});
}
if ($wday eq 'Mon') {
${$href}{'wdate:'} = '月';
} elsif ($wday eq 'Tue') {
${$href}{'wdate:'} = '火';
} elsif ($wday eq 'Wed') {
${$href}{'wdate:'} = '水';
} elsif ($wday eq 'Thu') {
${$href}{'wdate:'} = '木';
} elsif ($wday eq 'Fri') {
${$href}{'wdate:'} = '金';
} elsif ($wday eq 'Sat') {
${$href}{'wdate:'} = '土';
} elsif ($wday eq 'Sun') {
${$href}{'wdate:'} = '日';
}
}
--
Yuuichi Teranishi (寺西裕一) <teranisi at example.com>
NTT Information and Communication Systems Laboratories
TEL: 0468-59-2839 FAX: 0468-59-2768 PHS: 050-106-7597
Mew-dist メーリングリストの案内