2022-10-06 20:20:42 +00:00
|
|
|
const DateFormatter = require("slidingtext.dtfmt.js");
|
2021-04-07 21:45:50 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Japanese date formatting
|
|
|
|
*/
|
|
|
|
const japaneseHourStr = [ "ZERO", "ICHII", "NI", "SAN", "YO",
|
|
|
|
"GO", "ROKU", "SHICHI", "HACHI", "KU", "JUU",
|
|
|
|
'JUU ICHI', 'JUU NI'];
|
|
|
|
const tensPrefixStr = [ "",
|
|
|
|
"JUU",
|
|
|
|
'NIJUU',
|
|
|
|
'SAN JUU',
|
|
|
|
'YON JUU',
|
|
|
|
'GO JUU'];
|
|
|
|
|
|
|
|
const japaneseMinuteStr = [ ["", "PUN"],
|
|
|
|
["IP","PUN" ],
|
|
|
|
["NI", "FUN"],
|
|
|
|
["SAN", "PUN"],
|
|
|
|
["YON","FUN"],
|
|
|
|
["GO", "HUN"],
|
|
|
|
["RO", "PUN"],
|
|
|
|
["NANA", "FUN"],
|
|
|
|
["HAP", "PUN"],
|
|
|
|
["KYU","FUN"],
|
|
|
|
["JUP", "PUN"]
|
|
|
|
];
|
|
|
|
|
|
|
|
function japaneseHoursToText(hours){
|
|
|
|
hours = hours % 12;
|
2022-09-29 22:37:42 +00:00
|
|
|
if(hours === 0){
|
2021-04-07 21:45:50 +00:00
|
|
|
hours = 12;
|
|
|
|
}
|
|
|
|
return japaneseHourStr[hours];
|
|
|
|
}
|
|
|
|
|
|
|
|
function japaneseMinsToText(mins){
|
2022-09-29 22:37:42 +00:00
|
|
|
if(mins === 0){
|
2021-04-07 21:45:50 +00:00
|
|
|
return ["",""];
|
2022-09-29 22:37:42 +00:00
|
|
|
} else if(mins === 30)
|
2021-04-07 21:45:50 +00:00
|
|
|
return ["HAN",""];
|
|
|
|
else {
|
2022-10-06 20:20:42 +00:00
|
|
|
const units = mins % 10;
|
|
|
|
const mins_txt = japaneseMinuteStr[units];
|
|
|
|
const tens = mins /10 | 0;
|
2021-04-07 21:45:50 +00:00
|
|
|
if(tens > 0){
|
|
|
|
var tens_txt = tensPrefixStr[tens];
|
|
|
|
var minutes_txt;
|
|
|
|
if(mins_txt[0] != ''){
|
|
|
|
minutes_txt = mins_txt[0] + ' ' + mins_txt[1];
|
|
|
|
} else {
|
|
|
|
minutes_txt = mins_txt[1];
|
|
|
|
}
|
|
|
|
return [tens_txt, minutes_txt];
|
|
|
|
} else {
|
|
|
|
return [mins_txt[0], mins_txt[1]];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class JapaneseDateFormatter extends DateFormatter {
|
2022-08-06 01:18:25 +00:00
|
|
|
constructor() {
|
|
|
|
super();
|
2022-10-08 20:46:00 +00:00
|
|
|
}
|
|
|
|
formatDate(date){
|
|
|
|
const hours_txt = japaneseHoursToText(date.getHours());
|
|
|
|
const mins_txt = japaneseMinsToText(date.getMinutes());
|
|
|
|
return [hours_txt,"JI", mins_txt[0], mins_txt[1] ];
|
|
|
|
}
|
|
|
|
defaultRowTypes(){ return {}; }
|
|
|
|
|
|
|
|
defaultRowDefs(){
|
|
|
|
return [
|
2022-09-29 18:05:44 +00:00
|
|
|
{
|
|
|
|
type: 'large',
|
|
|
|
init_coords: [0.05,0.1],
|
|
|
|
row_direction: [0.0,1.0],
|
|
|
|
rows: 1
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'medium',
|
|
|
|
init_coords: [0.05,0.4],
|
|
|
|
row_direction: [0.0,1.0],
|
|
|
|
rows: 3
|
2022-08-06 01:18:25 +00:00
|
|
|
}
|
2022-09-29 18:05:44 +00:00
|
|
|
];
|
2022-08-06 01:18:25 +00:00
|
|
|
}
|
2021-04-07 21:45:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = JapaneseDateFormatter;
|