diff --git a/apps/slidingtext/slidingtext.local.en2.js b/apps/slidingtext/slidingtext.local.en2.js new file mode 100644 index 000000000..205a75c0e --- /dev/null +++ b/apps/slidingtext/slidingtext.local.en2.js @@ -0,0 +1,68 @@ +var DateFormatter = require("slidingtext.dtfmt.js"); + +const numberStr = ["ZERO","ONE", "TWO", "THREE", "FOUR", "FIVE", + "SIX", "SEVEN","EIGHT", "NINE", "TEN", + "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", + "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", + "NINETEEN", "TWENTY"]; +const tensStr = ["ZERO", "TEN", "TWENTY", "THIRTY", "FOURTY", + "FIFTY"]; + +function hoursToText(hours){ + hours = hours % 12; + if(hours == 0){ + hours = 12; + } + return numberStr[hours]; +} + +function numberToText(value){ + var word1 = ''; + var word2 = ''; + if(value > 20){ + var tens = (value / 10 | 0); + word1 = tensStr[tens]; + var remainder = value - tens * 10; + if(remainder > 0){ + word2 = numberStr[remainder]; + } + } else if(value > 0) { + word1 = numberStr[value]; + } + return [word1,word2]; +} + +class EnglishTraditionalDateFormatter extends DateFormatter { + constructor() { + super(); + } + name(){return "English Traditional";} + formatDate(date){ + var hours = hoursToText(date.getHours()); + var mins = date.getMinutes(); + if(mins == 0){ + return [hours,"", "O'","CLOCK"]; + } else if(mins == 30){ + return ["","HALF", "PAST", "", hours]; + } + var mins_txt = ['','']; + if(mins == 15 || mins == 45){ + mins_txt[0] = "QUARTER"; + } + var from_to = ''; + if(mins > 30){ + from_to = "TO"; + mins_txt = numberToText(60-mins); + } else { + from_to = "PAST"; + mins_txt = numberToText(mins); + } + if(mins_txt[1] != '') { + return ['', mins_txt[0], mins_txt[1], from_to, hours]; + } else { + return ['', mins_txt[0], from_to, '', hours]; + } + } +} + +module.exports = EnglishTraditionalDateFormatter; \ No newline at end of file