주말을 포함한 막대 계산 - 페이지 2

 
forex2030 :

나는 그것이 나에게 무엇을 줄 것인지 이해하지 못한다?

어떤 종류의 날짜 열거가 지점에서 지점으로 수행될 수 있으며 기간 동안 a day = 6 또는 0이면 day ++;

그것은 말도 안돼. 시장에 나와 있는 모든 그래픽 구성 (모든)은 단순히 쉬는 날이 없다는 사실을 기반으로 합니다.

 
Алексей Тарабанов :

그것은 말도 안돼. 시장에 나와 있는 모든 그래픽 구성 (모든)은 단순히 쉬는 날이 없다는 사실을 기반으로 합니다.

예를 들어 마지막 날짜가 15일이고 날짜가 18일 경우 +2를 기억하십시오(즉, 16일과 17일 휴무).

 
forex2030 :

예를 들어 마지막 날짜가 15일이고 날짜가 18일 경우 +2를 기억하십시오(즉, 16일과 17일 휴무).

당신이 정말로 원한다면 할 수 있습니다. 아무 소용이 없습니다.

이러한 추세는 18일에도 계속될 것이다. 15에서 18까지 - 하나의 바.

 
Алексей Тарабанов :

당신이 정말로 원한다면 할 수 있습니다. 아무 소용이 없습니다.

이것이 어떻게 말이 되지 않습니까?
결과 값을 내 막대에 추가하고 이미 12 + 4 = 16 막대를 얻고 해당 행은 원하는 날짜에 끝납니다.

 
forex2030 :

이것이 어떻게 말이 되지 않습니까?
결과 값을 내 막대에 추가하고 이미 12 + 4 = 16 막대를 얻고 해당 행은 원하는 날짜에 끝납니다.

라인이 공중에 매달려있을 것입니다.

 
Алексей Тарабанов :

라인이 공중에 매달려있을 것입니다.

첫 번째 지점에 12개의 막대가 아니라 16개의 막대를 추가하면 왜 공중에 매달려 있습니까?

 
forex2030 :

첫 번째 지점에 12개의 막대가 아니라 16개의 막대를 추가하면 왜 공중에 매달려 있습니까?

잘 자.

 

이런게 필요하지만 제대로 디자인된건 그냥 생각일뿐

 int NumData( datetime data1, datetime data2){
     int num= 0 ;
     for ( int d=data1; d>=data2; d--)
     if (TimeDayOfWeek(d)== 6 || TimeDayOfWeek(d)== 0 ) num++;
return (num);}
 
그리고 왜이 문제를 해결하지 않고 해결하지 않습니까? 시작 날짜와 종료 날짜를 알고 있으므로 그 사이의 총 일수를 계산할 수 있습니다. 그런 다음 전체 주 수를 계산합니다. 매주 5일 근무 및 2일 휴무 - 이것으로 모든 것이 간단합니다. 나머지 문제(초기에 있다고 가정)는 주의 첫 번째 요일 과 기간에 따라 주말을 캡처하거나 캡처하지 않을 수 있습니다. 각 요일에 대해 7개의 옵션에 대한 스위치를 작성하고 요일의 시작과 나머지 기간에 따라 7개의 계산을 수행해야 합니다. 그런 다음 이 스위치를 보면 이러한 계산이 어떻게 일반화되고 단순화되는지 알 수 있습니다. 요점은 뭔가를 하는 것입니다.
 
Dmitry Fedoseev :
그리고 왜이 문제를 해결하지 않고 해결하지 않습니까? 시작 날짜와 종료 날짜를 알고 있으므로 그 사이의 총 일수를 계산할 수 있습니다. 그런 다음 전체 주 수를 계산합니다. 매주 5일 근무 및 2일 휴무 - 이것으로 모든 것이 간단합니다. 나머지 문제(초기에 있다고 가정)는 주의 첫 번째 요일 과 기간에 따라 주말을 캡처하거나 캡처하지 않을 수 있습니다. 각 요일에 대해 7개의 옵션에 대한 스위치를 작성하고 요일의 시작과 나머지 기간에 따라 7개의 계산을 수행해야 합니다. 그런 다음 이 스위치를 보면 이러한 계산이 어떻게 일반화되고 단순화되는지 알 수 있습니다. 요점은 뭔가를 하는 것입니다.

모든 것이 복잡합니다. 날짜 사이에는 초 단위의 시간이 있습니다(datetime) - 이것은 24시간, 매시간 60분, 1분에 60초가 있는 전체 일 수를 계산하기에 충분합니다. .... google to 구조하다

우리가 왜곡 된 계산 방법에 대해 이야기하고 있다면 다음과 같이 할 수 있습니다.

 input datetime d_start = D'2020.01.01' ;
input datetime d_stop  = D'2020.02.01' ;
//+------------------------------------------------------------------+
void OnStart ()
{
   MqlDateTime dts[ 2 ];
   TimeToStruct (d_start,dts[ 0 ]);
   TimeToStruct (d_stop,dts[ 1 ]);
   printf ( "Между датами %i дней" ,dts[ 1 ].day_of_year - dts[ 0 ].day_of_year);
}
//+------------------------------------------------------------------+

당신이 제안한 것처럼 각 막대를 세고 현재 막대와 이전 막대 사이에 주말이 있는지 알아내는 것이 가능합니다 .... 일반적으로 작업을 복잡하게 만들 가능성은 욕망에 의해서만 제한됩니다 )))