mql5言語の特徴、微妙なニュアンスとテクニック - ページ 243

 
大きなパフォーマンスヒットを伴わない高速コンパイルが必要な場合は、コンパイル済みのライブラリを使用することができる -#import .ex5
 
Nikolai Semko #:

そうかもしれない:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}

だめだ、うまくいかない。

 
Mikola_2 #:

ダメだ、動かない((

とても正確に動きます。私はこれを使っています。ENUM_DAY_OF_WEEKに変換できます。

 
Alexey Viktorov #:

とても正確に機能する。私はこれを使っている。値をENUM_DAY_OF_WEEKに変換できます。

非常に正確」ということはありません。常に正確か、正確でないかのどちらかだ。ニシンの二番煎じのようなものだ。どの期間でテストしたのですか?できなかった。
 
Mikola_2 #:

ダメだ、動かない。

括弧が抜けているのは、7で割ったときの余りをuchar型に変換した数値から取っている。

 
Mikola_2 #:
"非常に正確 "ということはない。常に正確か、そうでないかだ。ニシンの二番煎じのようなものだ。どの期間でテスト したのですか?できなかった

どういう意味?この関数は曜日を返すだけだ。期間と何の関係があるの?好きな時間を入れれば曜日が出る。

生年月日を入れれば生まれた曜日が出る。

あるいは、ロウソクの時間による曜日はこうだ。


 
Aliaksandr Hryshyn #:

括弧がないのは、7で割ったときの余りがuchar型にキャストされた数値から取られているためである。

全部ある。私は24*60*60を自分の好みに置き換えただけだ。

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

上の結果...

この数式を使い始めてからどのくらい経っただろう。


 
Alexey Viktorov #:

そこにあるものすべてで十分だ。24*60*60を自分の好みに入れ替えただけだ。

上記の結果...

この公式をどれだけ長く使っているかに注目してほしい。


画面にエラーはない!よく見てください。私はエラーを指摘した。

 
Aliaksandr Hryshyn #:

括弧がないのは、7で割ったときの余りがuchar型にキャストされた数値から取られているためである。

そうか!これで間違いなさそうだ。
 
Aliaksandr Hryshyn #:

画面にエラーはない!よく見てください私はエラーを指摘した。

まあ、関数のコードも全部見せましたけどね。もう一度:

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

私はあなたに同意する。おそらくニコライは記憶を頼りに書いていて、不正確な部分があったのだろう。でも、動かないというのはちょっと違う。

理由: