mirror of https://github.com/espruino/BangleApps
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
var DateFormatter = require("slidingtext.dtfmt.js");
|
|
|
|
/**
|
|
* 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;
|
|
if(hours == 0){
|
|
hours = 12;
|
|
}
|
|
return japaneseHourStr[hours];
|
|
}
|
|
|
|
function japaneseMinsToText(mins){
|
|
if(mins == 0){
|
|
return ["",""];
|
|
} else if(mins == 30)
|
|
return ["HAN",""];
|
|
else {
|
|
var units = mins % 10;
|
|
var mins_txt = japaneseMinuteStr[units];
|
|
var tens = mins /10 | 0;
|
|
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 {
|
|
constructor() { super(); }
|
|
name(){return "Japanese (Romanji)";}
|
|
shortName(){return "jp"}
|
|
formatDate(date){
|
|
var hours_txt = japaneseHoursToText(date.getHours());
|
|
var mins_txt = japaneseMinsToText(date.getMinutes());
|
|
return [hours_txt,"JI", mins_txt[0], mins_txt[1] ];
|
|
}
|
|
}
|
|
|
|
module.exports = JapaneseDateFormatter; |