using System;
using System.Timers;
using System.IO;
class Program
{
public static void Main()
{
CHKNMNM nmm = new CHKNMNM();
nmm.CALCCHK();
nmm.REALCHK();
nmm.DISPCHK();
}
}
class CHKNMNM
{
string[] HOLIDAY = new string[]
{
"2024-01-01",
"2024-02-09",
"2024-02-12",
"2024-03-01",
"2024-04-10",
"2024-05-01",
"2024-05-06",
"2024-05-15",
"2024-06-06",
"2024-08-15",
"2024-09-16",
"2024-09-17",
"2024-09-18",
"2024-10-03",
"2024-10-09",
"2024-12-25",
};
string[] HOLIDAYNM = new string[]
{
"2024-01-01(신정)",
"2024-02-09(구정)",
"2024-02-12(구정)",
"2024-03-01(삼일절)",
"2024-04-10(선거일)",
"2024-05-01(노동절)",
"2024-05-06(어린이날대체)",
"2024-05-15(부처님오신날)",
"2024-06-06(현충일)",
"2024-08-15(광복절)",
"2024-09-16(추석)",
"2024-09-17(추석)",
"2024-09-18(추석)",
"2024-10-03(개천절)",
"2024-10-09(한글날)",
"2024-12-25(크리스마스)",
};
string[] YOIL = new string[]
{
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY",
};
string[] RANDOMNM = new string[]
{
"CHO","PARK","JIN",
};
const int MAX_CNT = 1024;
string[] CHKNM = new string[MAX_CNT];
string[] CHKDT = new string[MAX_CNT];
string[] CHKYO = new string[MAX_CNT];
string[] CHKRM = new string[MAX_CNT];
public void CALCCHK()
{
int ii = 0; //(1-MON, 7-SUNDAY)
int day = 0;
int mm = 0;
int kk = 0;
DateTime now = DateTime.Now;
DateTime calcnow;
//POINT:CHKRM's INCREASE ITSELF
//POINT:RANDOMNM's INCREASE ITSELF
//POINT:CHKRM's INCREASE ITSELF
//POINT:RANDOMNM's INCREASE ITSELF
while(true)
{
calcnow = now.AddDays(day);
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) < 20231231)
{
day++;
continue;
}
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20250101) break;
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20231231) ii=7;
int check = 0;
for(int ff =0; ff < HOLIDAY.Length; ff++)
{
if(calcnow.ToString("yyyy-MM-dd") == HOLIDAY[ff])
{
check = 100;
break;
}
}
if(check == 0)
{
if(ii==4) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
else if(ii==5) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
}
else
{
if(ii==1) CHKRM[kk++] = "PARK";
else if(ii==2) CHKRM[kk++] = "JIN";
else if(ii==3) CHKRM[kk++] = "CHO";
else if(ii==4) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
else if(ii==5) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
}
day++;
ii++;
if(ii == 8) ii = 1;
}
}
public void REALCHK()
{
int ii = 0; //(1-MON, 7-SUNDAY)
int day = 0;
int kk = 0;
int sum = 0;
DateTime now = DateTime.Now;
DateTime calcnow;
while(true)
{
calcnow = now.AddDays(day);
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) < 20231231)
{
day++;
continue;
}
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20250101) break;
if( Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20231231) ii=7;
int check = 0;
for(int ff =0; ff < HOLIDAY.Length; ff++)
{
if(calcnow.ToString("yyyy-MM-dd") == HOLIDAY[ff])
{
check = 100;
break;
}
}
if(check == 0)
{
if(ii==1)
{
CHKNM[sum] = "PARK";
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==2)
{
CHKNM[sum] = "JIN";
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==3)
{
CHKNM[sum] = "CHO";
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==4)
{
CHKNM[sum] = CHKRM[kk++];
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==5)
{
CHKNM[sum] = CHKRM[kk++];
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==6)
{
CHKNM[sum] = "HOLIDAY";
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==7)
{
CHKNM[sum] = "HOLIDAY";
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
}
else if(check == 100)
{
CHKYO[sum] = YOIL[ii-1];
CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
int subcheck = 0;
for(int ff=0; ff<HOLIDAY.Length; ff++)
{
if(CHKDT[sum] == HOLIDAY[ff])
{
CHKNM[sum] = HOLIDAYNM[ff];
subcheck = 100;
break;
}
}
if(subcheck == 0)
{
CHKNM[sum] = "SPECIAL";
}
}
day++;
ii++;
sum++;
if(ii == 8) ii = 1;
}
}
public void DISPCHK()
{
int kk = 0;
while(true)
{
string dateTxt = "";
string nameTxt = "";
int check = 0;
for(int ii=0; ii<7; ii++)
{
dateTxt += CHKDT[kk] + "/";
nameTxt += CHKNM[kk] + "/";
if(CHKDT[kk] == "2024-12-31")
{
check = 100;
break;
}
kk++;
}
Console.WriteLine(dateTxt);
Console.WriteLine(nameTxt);
if(check == 100) break;
}
}
}