mirror of https://github.com/espruino/BangleApps
95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
var DateFormatter = require("slidingtext.dtfmt.js");
|
|
|
|
/**
|
|
* French date formatting
|
|
*/
|
|
const frenchNumberStr = [ "ZERO", "UNE", "DEUX", "TROIS", "QUATRE",
|
|
"CINQ", "SIX", "SEPT", "HUIT", "NEUF", "DIX",
|
|
"ONZE", "DOUZE", "TREIZE", "QUATORZE","QUINZE",
|
|
"SEIZE", "DIX SEPT", "DIX HUIT","DIX NEUF", "VINGT",
|
|
"VINGT ET UN", "VINGT DEUX", "VINGT TROIS",
|
|
"VINGT QUATRE", "VINGT CINQ", "VINGT SIX",
|
|
"VINGT SEPT", "VINGT HUIT", "VINGT NEUF"
|
|
];
|
|
|
|
function frenchHoursToText(hours){
|
|
hours = hours % 12;
|
|
if(hours === 0){
|
|
hours = 12;
|
|
}
|
|
return frenchNumberStr[hours];
|
|
}
|
|
|
|
function frenchHeures(hours){
|
|
if(hours % 12 === 1){
|
|
return 'HEURE';
|
|
} else {
|
|
return 'HEURES';
|
|
}
|
|
}
|
|
|
|
class FrenchDateFormatter extends DateFormatter {
|
|
constructor() {
|
|
super();
|
|
}
|
|
formatDate(date){
|
|
var hours = frenchHoursToText(date.getHours());
|
|
var heures = frenchHeures(date.getHours());
|
|
const mins = date.getMinutes();
|
|
if(mins === 0){
|
|
if(hours === 0){
|
|
return ["MINUIT", "",""];
|
|
} else if(hours === 12){
|
|
return ["MIDI", "",""];
|
|
} else {
|
|
return [hours, heures,""];
|
|
}
|
|
} else if(mins === 30){
|
|
return [hours, heures,'ET DEMIE'];
|
|
} else if(mins === 15){
|
|
return [hours, heures,'ET QUART'];
|
|
} else if(mins === 45){
|
|
var next_hour = date.getHours() + 1;
|
|
hours = frenchHoursToText(next_hour);
|
|
heures = frenchHeures(next_hour);
|
|
return [hours, heures,"MOINS",'LET QUART'];
|
|
}
|
|
if(mins > 30){
|
|
const to_mins = 60-mins;
|
|
var mins_txt = frenchNumberStr[to_mins];
|
|
next_hour = date.getHours() + 1;
|
|
hours = frenchHoursToText(next_hour);
|
|
heures = frenchHeures(next_hour);
|
|
return [ hours, heures , "MOINS", mins_txt ];
|
|
} else {
|
|
mins_txt = frenchNumberStr[mins];
|
|
return [ hours, heures , mins_txt ];
|
|
}
|
|
}
|
|
defaultRowTypes(){
|
|
return {
|
|
small: {
|
|
speed: 'vslow'
|
|
}
|
|
};
|
|
}
|
|
|
|
defaultRowDefs(){
|
|
return [
|
|
{
|
|
type: 'large',
|
|
init_coords: [0.05,0.1],
|
|
row_direction: [0.0,1.0],
|
|
rows: 1
|
|
},
|
|
{
|
|
type: 'small',
|
|
init_coords: [0.05,0.4],
|
|
row_direction: [0.0,1.0],
|
|
rows: 3
|
|
}
|
|
];
|
|
}
|
|
}
|
|
|
|
module.exports = FrenchDateFormatter; |