[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 メーリングリストの案内