57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
export const formatDate = (date: Date): string => {
|
|
if (!date) return '';
|
|
const year = date.getFullYear();
|
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 월은 0부터 시작하므로 +1
|
|
const day = String(date.getDate()).padStart(2, '0');
|
|
return `${year}-${month}-${day}`;
|
|
};
|
|
|
|
// 현재 년도부터 10년 전까지의 년도 옵션 생성
|
|
export const yearOptions = Array.from({ length: 10 }, (_, i) => {
|
|
const year = new Date().getFullYear() - i;
|
|
return { text: `${year}년`, val: year.toString() };
|
|
});
|
|
|
|
// 현재 날짜를 기준으로 현재 분기까지의 분기 옵션 생성
|
|
export const getQuarterOptions = (selectedYear?: string): { text: string; val: string }[] => {
|
|
const currentDate = new Date();
|
|
const currentYear = currentDate.getFullYear().toString();
|
|
const currentMonth = currentDate.getMonth() + 1; // 0부터 시작하므로 +1
|
|
|
|
// 현재 년도인 경우에만 현재 날짜까지의 분기 표시
|
|
if (selectedYear === currentYear) {
|
|
// 현재 월을 기준으로 현재 분기 계산
|
|
const currentQuarter = Math.ceil(currentMonth / 3);
|
|
|
|
// 현재 분기까지의 분기 옵션 생성
|
|
const quarterOptions = [];
|
|
for (let i = 1; i <= currentQuarter; i++) {
|
|
quarterOptions.push({
|
|
text: `${i}분기`,
|
|
val: i.toString()
|
|
});
|
|
}
|
|
|
|
return quarterOptions;
|
|
} else {
|
|
// 이전 년도인 경우 모든 분기 표시
|
|
return [
|
|
{ text: "1분기", val: "1" },
|
|
{ text: "2분기", val: "2" },
|
|
{ text: "3분기", val: "3" },
|
|
{ text: "4분기", val: "4" }
|
|
];
|
|
}
|
|
};
|
|
|
|
// ["202506", "202505", "202502", "202405"] 을 SelectBox의 옵션으로 변환
|
|
export const convertToTextValArray = (yyyymms: string[]): { text: string; val: string }[] => {
|
|
return yyyymms.map(dateStr => {
|
|
const year = dateStr.slice(0, 4);
|
|
const month = dateStr.slice(4, 6);
|
|
return {
|
|
text: `${year}-${month}`,
|
|
val: dateStr
|
|
};
|
|
});
|
|
}; |