2017年2月6日

ちょいスクリプト:12時制を24時制に書き換える

「午後4:05」→「16時5分」、「午前8時半」→「8時30分」という具合に12時制の時刻を24時制の「hh時mm分」の形式に書き換える。

ただし、「午後12時」は本来「夜中の0時」のはずだけど、「昼の12時15分」のつもりで「午後12時15分」と書く人もいるので、「午後12時」については疑問出しをするようにした。

perl

#!/usr/bin/perl
use utf8;
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';
binmode STDIN, ':utf8';

while (<>) {
        y/1234567890:/1234567890:/;
        s/(\d+):(\d+)/\1時\2分/g;
        s/(?<=時)半/30分/g;
        s/00分//g;
        s/午後0/12/g;
        s/午後10/22/g;
        s/午後11/23/g;
        s/午後12(?=時\d+分)/昼?夜?0/g;
        s/午後12(?!時\d+分)/0/g;
        s/午後1/13/g;
        s/午後2/14/g;
        s/午後3/15/g;
        s/午後4/16/g;
        s/午後5/17/g;
        s/午後6/18/g;
        s/午後7/19/g;
        s/午後8/20/g;
        s/午後9/21/g;
        s/午前(?=\d+)//g;
    print $_;
}

javascript

var mySel = app.activeDocument.selection;
var myStr = mySel[0].contents;
myStr = myStr.replace(/0/g, "0");
myStr = myStr.replace(/1/g, "1");
myStr = myStr.replace(/2/g, "2");
myStr = myStr.replace(/3/g, "3");
myStr = myStr.replace(/4/g, "4");
myStr = myStr.replace(/5/g, "5");
myStr = myStr.replace(/6/g, "6");
myStr = myStr.replace(/7/g, "7");
myStr = myStr.replace(/8/g, "8");
myStr = myStr.replace(/9/g, "9");
myStr = myStr.replace(/:/g, ":");
myStr = myStr.replace(/(\d+):(\d+)/g,  "$1"+"時"+"$2"+"分");
myStr = myStr.replace(/(?<=時)半/g, "30分");
myStr = myStr.replace(/00分/g, "");
myStr = myStr.replace(/午後0/g, "12");
myStr = myStr.replace(/午後10/g, "22");
myStr = myStr.replace(/午後11/g, "23");
myStr = myStr.replace(/午後12(?=時\d+分)/g, "昼?夜?0");
myStr = myStr.replace(/午後12(?!時\d+分)/g, "0");
myStr = myStr.replace(/午後1/g, "13");
myStr = myStr.replace(/午後2/g, "14");
myStr = myStr.replace(/午後3/g, "15");
myStr = myStr.replace(/午後4/g, "16");
myStr = myStr.replace(/午後5/g, "17");
myStr = myStr.replace(/午後6/g, "18");
myStr = myStr.replace(/午後7/g, "19");
myStr = myStr.replace(/午後8/g, "20");
myStr = myStr.replace(/午後9/g, "21");
myStr = myStr.replace(/午前(?=\d+)/g, "");
mySel[0].contents = myStr;