아래는 만기일 기준으로 날짜를 리턴하는 수식입니다.
같은 방식으로
매월 말일 기준으로 리턴하는 수식을 부탁드립니다.
remain 0 이면 2020 12 31
remain 1 이면 2020 12 30
remain 2 이면 2020 12 29
remain 3 이면 2020 12 28
remain 4 이면 2020 12 27
remain 5 이면 2020 12 26
remain 6 이면 2020 12 25
remain 7 이면 2020 12 24
.
.
.
*******************************************************************************
Var : Year(0),Month(0),ndate1(0),ndate2(0);
var : cnt(0),count1(0),count2(0);
var : XD1(0),XD2(0),Xdate(0),remain(0);
Year = Floor(sDate / 10000)*10000;
month = Floor(FracPortion(sdate/10000)*100)*100;
ndate1 = year+month+1;
if Month+100 <= 1200 Then
ndate2 = year+(month+100)+1;
Else
ndate2 = (year+10000)+100+1;
count1 = 0;
count2 = 0;
for cnt = 0 to 15
{
if dayofweek(ndate1+cnt) == 4 Then
{
count1 = count1+1;
if count1 == 2 Then
{
XD1 = ndate1+cnt;
}
}
if dayofweek(ndate2+cnt) == 4 Then
{
count2 = count2+1;
if count2 == 2 Then
{
XD2 = nDate2+cnt;
}
}
}
if sDate <= XD1 Then
{
Xdate = XD1;
}
Else
{
Xdate = XD2;
}
if Xdate > 0 Then
{
remain = DateToJulian(Xdate)-DateToJulian(sDate);
Plot1(remain);
}
if remain == 1 or remain == 0 then
{ 진입청산 수식
}
답변 1
예스스탁
예스스탁 답변
2020-12-23 14:00:08
안녕하세요
예스스탁입니다.
var : cnt(0),D0(0),D1(0),D2(0),D3(0),Lastday(0),remain(0);
if Bdate != Bdate[1] Then
{
D0 = Floor(bDate/100)*100;
For cnt = 1 to 31
{
D1 = D0+cnt;
D2 = DateToJulian(D1);
D3 = Floor(JulianToDate(D2)/100)*100;
if D0 == D3 Then
Lastday = D1;
}
}
if Lastday > 0 Then
{
remain = DateToJulian(Lastday)-DateToJulian(sDate);
Plot1(remain);
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 아래는 만기일 기준으로 날짜를 리턴하는 수식입니다.
같은 방식으로
매월 말일 기준으로 리턴하는 수식을 부탁드립니다.
remain 0 이면 2020 12 31
remain 1 이면 2020 12 30
remain 2 이면 2020 12 29
remain 3 이면 2020 12 28
remain 4 이면 2020 12 27
remain 5 이면 2020 12 26
remain 6 이면 2020 12 25
remain 7 이면 2020 12 24
.
.
.
*******************************************************************************
Var : Year(0),Month(0),ndate1(0),ndate2(0);
var : cnt(0),count1(0),count2(0);
var : XD1(0),XD2(0),Xdate(0),remain(0);
Year = Floor(sDate / 10000)*10000;
month = Floor(FracPortion(sdate/10000)*100)*100;
ndate1 = year+month+1;
if Month+100 <= 1200 Then
ndate2 = year+(month+100)+1;
Else
ndate2 = (year+10000)+100+1;
count1 = 0;
count2 = 0;
for cnt = 0 to 15
{
if dayofweek(ndate1+cnt) == 4 Then
{
count1 = count1+1;
if count1 == 2 Then
{
XD1 = ndate1+cnt;
}
}
if dayofweek(ndate2+cnt) == 4 Then
{
count2 = count2+1;
if count2 == 2 Then
{
XD2 = nDate2+cnt;
}
}
}
if sDate <= XD1 Then
{
Xdate = XD1;
}
Else
{
Xdate = XD2;
}
if Xdate > 0 Then
{
remain = DateToJulian(Xdate)-DateToJulian(sDate);
Plot1(remain);
}
if remain == 1 or remain == 0 then
{ 진입청산 수식
}