#!/usr/bin/perl
# ******** 日時表示 ********
sub st_dateform{
($cur_sec,$cur_min,$cur_hour,$mday,$month,$cur_year,$wday,$yday,$isdt)=gmtime(time+9*60*60);
@wk=("日","月","火","水","木","金","土");
if($cur_year<1900){$cur_year=$cur_year+1900;}
$cur_mon = $month+1;
$cur_day = $mday;
$cur_week = $wk[$wday];
$cur_time = time;
# 100
if($cur_mon < 10){$cur_mon="0".$cur_mon;}
if($cur_day < 10){$cur_day="0".$cur_day;}
if($cur_hour < 10){$cur_hour="0".$cur_hour;}
if($cur_min < 10){$cur_min="0".$cur_min;}
if($cur_sec < 10){$cur_sec="0".$cur_sec;}
$date_day=$cur_year."-".$cur_mon."-".$cur_day;
$date_min=$cur_year."-".$cur_mon."-".$cur_day."/".$cur_hour.":".$cur_min;
$date_sec=$cur_year."-".$cur_mon."-".$cur_day."/".$cur_hour.":".$cur_min.":".$cur_sec;
}
# ******** 年月日表示変更 ********
sub st_datejpn{
my ($date_fig) = @_;
#print "DEBUG 00021 - $date_fig
\n";
my $year_jpn = substr($date_fig,0,4);
my $mon_jpn = substr($date_fig,5,2);
$mon_jpn = $mon_jpn+0;
my $day_jpn = substr($date_fig,8,2);
$day_jpn = $day_jpn+0;
$year_jpn = $year_jpn - 1988;
$date_jpn = "平成 ".$year_jpn." 年 ".$mon_jpn." 月 ".$day_jpn." 日";
#print "DEBUG 00022 - $date_jpn
\n";
return($date_jpn);
}
# ******** 数値整形(コンマ) 新 *******
sub st_commaform{
my ($fig_val) = @_;
$fig_val =~ s/\./
/g;
(my $int_val,my $dcml_val)=split("
",$fig_val);
my $length1 = length($int_val);
my $comma1 = int(($length1-1)/3);
my $int_str = substr($int_val,0,$length1-$comma1*3);
if($comma1>=1){
for(my $g=0;$g<$comma1;$g++){
my $pos1=$length1-($comma1-$g)*3;
$int_str=$int_str.",".substr($int_val,$pos1,3);
}
}
$fig_str=$int_str.".".$dcml_val;
return($fig_str);
}
# ******** 数値整形(切り上げ、四捨五入、切り捨て) ********
sub st_dcmlform{
my ($dcml_dgt,$dcml_adj,$dcml_val) = @_;
#print "DEBUG 00g-51 $dcml_adj - $dcml_dgt - $dcml_val
\n";
my $dcml_k=10**$dcml_dgt;
#print "DEBUG 00g-52 $dcml_adj - $dcml_dgt - $dcml_val - $dcml_k
\n";
my $dcml_val2=$dcml_val*$dcml_k;
if($dcml_adj eq "up"){$dcml_val2 = int($dcml_val2+0.999999999);}
elsif($dcml_adj eq "dn"){$dcml_val2 = int($dcml_val2);}
else{$dcml_val2 = int($dcml_val2+0.5);}
$dcml_str=$dcml_val2/$dcml_k;
#print "DEBUG 00g-53 $dcml_adj - $dcml_val - $dcml_str - $dcml_dgt
\n";
if($dcml_dgt > 0){
if(abs(int($dcml_str)-$dcml_str)<0.000000001){
$dcml_str=$dcml_str.".";
}
$dcml_val2="".$dcml_val2;
$dcml_str="".$dcml_str;
my $g_len1=length($dcml_val2);
my $g_len2=length($dcml_str);
my $g_dif = $g_len1 + 1 - $g_len2;
if($dcml_val < 1){
$dcml_dgt = $dcml_dgt + 0;
$g_dif = $dcml_dgt + 2 - $g_len2;
}
#print "DEBUG 00g-54 $dcml_val - $dcml_str - $g_len2 - $dcml_dgt - $g_dif - AAA
\n";
for(my $g=1;$g<=$g_dif;$g++){
# 160
$dcml_str=$dcml_str."0";
}
}
#print "DEBUG 00g-55 $dcml_val - $dcml_str - $g_len2 - $dcml_dgt - $g_dif - AAA
\n";
return($dcml_str);
}
# ******** 数値整形(桁数揃え、コード用ほか) ********
sub st_nmbrform{
my ($nmbr_dgt, $nmbr_mark, $nmbr_val) = @_;
$nmbr_str="";
for(my $g=1;$g<=$nmbr_dgt;$g++) {$nmbr_str=$nmbr_str.$nmbr_mark;}
$nmbr_val="".$nmbr_val;
my $len=length($nmbr_val);
if($nmbr_dgt<$len){
$errmsg = "指定の桁数が数値の桁数より小です。\n";
$errref2 = "操作エラー:".$prjcode0." - ".$work." - ".$prgname." - cg_00st30x - st_nmbrform";
&io_errexit($errmsg,$errref2,$g_manager);
}
else{
substr($nmbr_str,$nmbr_dgt-$len,$len)=$nmbr_val;
#print "DEBUG 00g-65 $nmbr_val - $nmbr_str
\n";
return($nmbr_str);
}
}
# ******** 文字列整形(桁数揃え、コード用ほか) ********
sub st_strform{
my ($fixlen,$mark,$pos1,$string0) = @_;
$string0 =~ s/ //g;
$string1="";
for(my $g=0;$g<$fixlen;$g++) {$string1=$string1.$mark;}
my $len=length($string0);
if($fixlen<$len){
$errmsg = "指定の桁数が文字列の桁数より小です。\n";
$errref2 = "操作エラー:".$prjcode0." - ".$work." - ".$prgname." - cg_00st30x - st_strform";
&io_errexit($errmsg,$errref2,$g_manager);
}
else{
if($pos1 eq "head"){substr($string1,$fixlen-$len,$len) = $string0;}
else{substr($string1,0,$len) = $string0;}
return($string1);
}
}
# ******** 乱数コード(大小英字・数字) ********
sub st_rndmform{
my ($rndm_dgt) = @_;
my $rndm_k=10**$rndm_dgt;
my $g_chk="A";
do{
$rndm_str = rand;
$rndm_str = int($rndm_str * $rndm_k);
($cur_sec,$cur_min,$cur_hour,$mday,$month,$cur_year,$wday,$yday,$isdt)=gmtime(time+9*60*60);
$rndm_str = crypt($rndm_str,$cur_sec);
$rndm_str = substr($rndm_str,0,$rndm_dgt);
if($rndm_str =~ /[0-9a-zA-Z]{$rndm_dgt,}/){$g_chk="0";}
}while($g_chk eq "A");
return($rndm_str);
}
sub st_hankakuform{
my($msg) = @_;
$msg =~ s/0/0/g;
$msg =~ s/1/1/g;
$msg =~ s/2/2/g;
$msg =~ s/3/3/g;
$msg =~ s/4/4/g;
$msg =~ s/5/5/g;
$msg =~ s/6/6/g;
$msg =~ s/7/7/g;
$msg =~ s/8/8/g;
$msg =~ s/9/9/g;
$msg =~ s/A/A/g;
$msg =~ s/B/B/g;
$msg =~ s/C/C/g;
$msg =~ s/D/D/g;
$msg =~ s/E/E/g;
$msg =~ s/F/F/g;
$msg =~ s/G/G/g;
$msg =~ s/H/H/g;
$msg =~ s/I/I/g;
$msg =~ s/J/J/g;
$msg =~ s/K/K/g;
$msg =~ s/L/L/g;
$msg =~ s/M/M/g;
$msg =~ s/N/N/g;
$msg =~ s/O/O/g;
$msg =~ s/P/P/g;
$msg =~ s/Q/Q/g;
$msg =~ s/R/R/g;
$msg =~ s/S/S/g;
$msg =~ s/T/T/g;
$msg =~ s/U/U/g;
$msg =~ s/V/V/g;
$msg =~ s/W/W/g;
$msg =~ s/X/X/g;
$msg =~ s/Y/Y/g;
$msg =~ s/Z/Z/g;
$msg =~ s/a/a/g;
$msg =~ s/b/b/g;
$msg =~ s/c/c/g;
$msg =~ s/d/d/g;
$msg =~ s/e/e/g;
$msg =~ s/f/f/g;
$msg =~ s/g/g/g;
$msg =~ s/h/h/g;
$msg =~ s/i/i/g;
$msg =~ s/j/j/g;
$msg =~ s/k/k/g;
$msg =~ s/l/l/g;
$msg =~ s/m/m/g;
$msg =~ s/n/n/g;
$msg =~ s/o/o/g;
$msg =~ s/p/p/g;
$msg =~ s/q/q/g;
$msg =~ s/r/r/g;
$msg =~ s/s/s/g;
$msg =~ s/t/t/g;
$msg =~ s/u/u/g;
$msg =~ s/v/v/g;
$msg =~ s/w/w/g;
$msg =~ s/x/x/g;
$msg =~ s/y/y/g;
$msg =~ s/z/z/g;
return($msg);
}
1;