forked from vergnet/application-amicale
		
	
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // @flow
 | |
| 
 | |
| import i18n from 'i18n-js';
 | |
| 
 | |
| /**
 | |
|  * Singleton used to manage date translations.
 | |
|  * Translations are hardcoded as toLocaleDateString does not work on current android JS engine
 | |
|  */
 | |
| export default class DateManager {
 | |
|     static instance: DateManager | null = null;
 | |
| 
 | |
|     daysOfWeek = [];
 | |
|     monthsOfYear = [];
 | |
| 
 | |
|     constructor() {
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.sunday")); // 0 represents sunday
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.monday"));
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.tuesday"));
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.wednesday"));
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.thursday"));
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.friday"));
 | |
|         this.daysOfWeek.push(i18n.t("date.daysOfWeek.saturday"));
 | |
| 
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.january"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.february"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.march"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.april"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.may"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.june"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.july"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.august"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.september"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.october"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.november"));
 | |
|         this.monthsOfYear.push(i18n.t("date.monthsOfYear.december"));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get this class instance or create one if none is found
 | |
|      * @returns {DateManager}
 | |
|      */
 | |
|     static getInstance(): DateManager {
 | |
|         return DateManager.instance === null ?
 | |
|             DateManager.instance = new DateManager() :
 | |
|             DateManager.instance;
 | |
|     }
 | |
| 
 | |
|     static isWeekend(date: Date) {
 | |
|         return date.getDay() === 6 || date.getDay() === 0;
 | |
|     }
 | |
| 
 | |
|     getMonthsOfYear() {
 | |
|         return this.monthsOfYear;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Gets a translated string representing the given date.
 | |
|      *
 | |
|      * @param dateString The date with the format YYYY-MM-DD
 | |
|      * @return {string} The translated string
 | |
|      */
 | |
|     getTranslatedDate(dateString: string) {
 | |
|         let dateArray = dateString.split('-');
 | |
|         let date = new Date();
 | |
|         date.setFullYear(parseInt(dateArray[0]), parseInt(dateArray[1]) - 1, parseInt(dateArray[2]));
 | |
|         return this.daysOfWeek[date.getDay()] + " " + date.getDate() + " " + this.monthsOfYear[date.getMonth()] + " " + date.getFullYear();
 | |
|     }
 | |
| 
 | |
| }
 |