Files
apkt-eis/src/utils/texts.ts
2024-03-31 21:16:49 +07:00

106 lines
2.6 KiB
TypeScript
Executable File

const splitRoutePath = (routePath: string): string[] => {
const routeParts = routePath.split('/').filter((part) => part !== '')
const routeArray: string[] = []
let currentRoute = ''
for (const part of routeParts) {
currentRoute += `/${part}`
routeArray.push(currentRoute)
}
return routeArray
}
const getMonthName = (monthNumber: number) => {
const months = [
'Januari',
'Februari',
'Maret',
'April',
'Mei',
'Juni',
'Juli',
'Agustus',
'September',
'Oktober',
'November',
'Desember'
]
return months[monthNumber - 1] || ''
}
const getMonthNameShort = (monthNumber: number) => {
const months = [
'Jan',
'Feb',
'Mar',
'Apr',
'Mei',
'Jun',
'Jul',
'Agu',
'Sep',
'Okt',
'Nov',
'Des'
]
return months[monthNumber - 1] || ''
}
const getMonthNumber = (monthName: string) => {
const months = [
'Januari',
'Februari',
'Maret',
'April',
'Mei',
'Juni',
'Juli',
'Agustus',
'September',
'Oktober',
'November',
'Desember'
]
if (months.filter((month) => month.toLowerCase() === monthName.toLowerCase()).length > 0) {
return months.indexOf(monthName) + 1
} else {
return 0
}
}
const reformatDate = (inputDate: string, originalFormat: string, targetFormat: string): string => {
// Parsing tanggal dari format asli
const originalDate = parseDate(inputDate, originalFormat)
// Format tanggal dalam format yang diinginkan
const formattedDate = formatDateToString(originalDate, targetFormat)
return formattedDate
}
const parseDate = (inputDate: string, format: string): Date => {
// Pisahkan tanggal, bulan, dan tahun dari input berdasarkan format
const parts = inputDate.split(/[^0-9]+/)
const formatParts = format.split(/[^a-zA-Z]+/)
// Buat objek tanggal baru dengan mengambil nilai dari format yang diberikan
const dateValues: any = {}
for (let i = 0; i < formatParts.length; i++) {
if (formatParts[i]) {
dateValues[formatParts[i]] = parseInt(parts[i], 10)
}
}
// Format tanggal dalam format yang diinginkan
return new Date(dateValues['yyyy'], dateValues['MM'] - 1, dateValues['dd'])
}
const formatDateToString = (date: Date, format: string): string => {
const day = date.getDate().toString().padStart(2, '0')
const month = (date.getMonth() + 1).toString().padStart(2, '0')
const year = date.getFullYear().toString()
// Ganti placeholder dengan nilai tanggal, bulan, dan tahun
return format.replace('yyyy', year).replace('MM', month).replace('dd', day)
}
export { reformatDate, splitRoutePath, getMonthName, getMonthNameShort, getMonthNumber }