|
石さん,こんばんは。
先にお示ししたマクロでは曜日が正しく表されないというバグがありました。
念のため,修正したものを以下にあげておきます。
Ver.3.56 で使用すると画面のちらつきが少なくなるはずです。
では, (^^)/~
山紫水明(ユーザー)
//------ TKChangeDate.mac ----------------------------------------------//
// 本文中の日付と時刻を範囲選択して実行,ヘッダの日付を変更する
// 対応している日付時刻形式
// 2004/05/24 13:04:04
// 2004年5月24日 13時4分4秒
if( !selecting ) {
message "日付を範囲選択してください。";
endmacro;
}
$date = gettext( seltopx, seltopy, selendx, selendy );
if( ascii(rightstr($date,1)) == 10 )
$date = leftstr($date, strlen($date) - 1);
loaddll "TKInfo.dll";
if( dllfunc( "IsTuruKameMain") ) {
if( dllfunc("TuruKameVersion") > 355 )
#n = dllfunc("SetQuietMode", 1 );
#n = dllfunc( "OpenMail" );
}if( readonly ) #n = dllfunc( "EnableEdit" );
$week = "SunMonTueWedThuFriSat";
$allmonth = "JanFebMarAprMayJunJulAugSepOctNovDec";
if( strstr($date, "年") > 0 ) {
$year = leftstr($date, strstr($date, "年"));
#month = val( midstr($date, strstr($date, "年") + 2, strstr($date, "月")
- strstr($date, "年") - 2) );
$day = midstr($date, strstr($date, "月") + 2, strstr($date, "日")
- strstr($date, "月") - 2);
$hour = midstr($date, strstr($date, "日") + 3, strstr($date, "時")
- strstr($date, "日") - 3);
$minute = midstr($date, strstr($date, "時") + 2, strstr($date, "分")
- strstr($date, "時") - 2);
$second = midstr($date, strstr($date, "分") + 2, strstr($date, "秒")
- strstr($date, "分") - 2);
if( strlen($day) == 1 ) $day = "0" + $day;
if( strlen($hour) == 1 ) $hour = "0" + $hour;
if( strlen($minute) == 1 ) $minute = "0" + $minute;
if( strlen($second) == 1 ) $second = "0" + $second;
} else {
$year = leftstr($date, 4);
#month = val(midstr($date, 5, 2));
$day = midstr($date, 8 ,2);
$hour = midstr($date, 11 ,2);
$minute = midstr($date, 14 ,2);
$second = midstr($date, 17 ,2);
}
if( $hour == "" ) $hour = "00";
if( $minute == "" ) $minute = "00";
if( $second == "" ) $second = "00";
$month = midstr( $allmonth, (#month - 1) * 3, 3 );
$time = $hour + ":" + $minute + ":" + $second + " +0900";
call DateToYou val($year), #month, val($day);
#you = ##return;
$you = midstr( $week, #you * 3, 3 );
$date = $you + ", " + $day + " " + $month + " " + $year + " " + $time;
#n = dllfunc( "SetHeader", "Date", $date );
save;
#n = dllfunc("SetMailFlag", "altered", 0);//改変マークをつけない場合
#n = dllfunc("SetQuietMode", 0 );
quit;
DateToYou:
##year = ##1;
##month = ##2;
##day = ##3;
if ( ##month <= 2 ) {
##year = ##year - 1;
##month = ##month + 12;
}
##dow = ( ##year + ##year / 4 - ##year / 100 + ##year / 400
+ ( 13 * ##month + 8 ) / 5 + ##day ) % 7;
return ##dow;
//--------------------------------------------------------------------//
|
|