/*---------------------------------------------------------------*/
/* PROGRAM-ID : LOCAL1 */
/* REMARKS :ロケールって何? */
/* AUTHOR : Y.Ide */
/* DATE-WRITEN : 98/04/30 */
/* VERSION : 01.00 ORIGINAL */
/*---------------------------------------------------------------*/
/* ロケールって何でしょう */
/* 日付や時刻、通貨記号の表現って国によってちがいますよね */
/* RPGだとH仕様書で */
/* 通貨記号(¥,$..) */
/* 日付形式(YMD,MDY,DMY) */
/* 日付編集(/,) */
/* が変更できます。 */
/* */
/* loaleを使うともっといろいろできます。 */
/* PGMにlocaleを指定することで再コンパイルなしで */
/* 表現方法の切り替えが可能です */
/* */
#include<stdio.h>
#include<locale.h>
#include<time.h>
#include <QSYSINC/H/QSNAPI>
void main()
{
char *string;
struct lconv * mylocale;
char timstr[70]; /*画面表示用*/
int ch;
time_t now; /*システム時刻用のワーク*/
struct tm *timeptr;
double fp = 1.23; /* サンプルの数字*/
now = time(NULL); /*秒数形式の時刻*/
timeptr = localtime(&now); /*時刻形式へ
/*DSM画面クリアAPIの実行*/
QsnClrScl(_C_Get_Ssn_Handle(), '0', NULL);
/* 省略値のロケール */
string = setlocale(LC_TOD, NULL);
printf("%s",string);
/* US */
string = setlocale(LC_ALL, LC_C_USA);
mylocale = localeconv();
printf( "\n");
printf( "----------US----------\n");
printf( "小数点%s %f\n", mylocale->decimal_point,fp);
printf( "通貨%s\n", mylocale->currency_symbol);
ch = strftime(timstr,sizeof(timstr)-1,"日付: %A,"
" %b %d. \n 時刻: %I:%M %p", timeptr);
printf("\n %s \n", timstr);
/*フランス*/
string = setlocale(LC_ALL, LC_C_FRANCE);
mylocale = localeconv();
printf( "\n");
printf( "----------フランス-----------\n");
printf( "小数点%s %f\n", mylocale->decimal_point,fp);
printf( "通貨%s\n", mylocale->currency_symbol);
ch = strftime(timstr,sizeof(timstr)-1,"日付: %A,"
" %b %d. \n 時刻: %I:%M %p", timeptr);
printf("\n %s \n", timstr);
/*ドイツ*/
string = setlocale(LC_ALL, LC_C_GERMANY);
mylocale = localeconv();
printf( "\n");
printf( "----------ドイツ----------\n");
printf( "小数点%s %f\n", mylocale->decimal_point,fp);
printf( "通貨%s\n", mylocale->currency_symbol);
ch = strftime(timstr,sizeof(timstr)-1,"日付: %A,"
" %b %d. \n 時刻: %I:%M %p", timeptr);
printf("\n %s \n", timstr);
/*UK*/
string = setlocale(LC_ALL, LC_C_UK);
mylocale = localeconv();
printf( "\n");
printf( "----------UK----------\n");
printf( "小数点%s %f\n", mylocale->decimal_point,fp);
printf( "通貨%s\n", mylocale->currency_symbol);
ch = strftime(timstr,sizeof(timstr)-1,"日付: %A,"
" %b %d. \n 時刻: %I:%M %p", timeptr);
printf("\n %s \n", timstr);
/*スペイン*/
string = setlocale(LC_ALL, LC_C_SPAIN);
mylocale = localeconv();
printf( "\n");
printf( "----------スペイン----------\n");
printf( "小数点%s %f\n", mylocale->decimal_point,fp);
printf( "通貨%s\n", mylocale->currency_symbol);
ch = strftime(timstr,sizeof(timstr)-1,"日付: %A,"
" %b %d. \n 時刻: %I:%M %p", timeptr);
printf("\n %s \n", timstr);
}
|