Калькулятор ниже определяет порядковый номер недели в году. Как выяснилось, это не совсем тривиальный вопрос, и есть целых четыре разных способа подсчитать номер недели. Первый способ: Стандарт ISO 8601 и соответствующий ему ГОСТ ИСО 8601-2001 «ПРЕДСТАВЛЕНИЕ ДАТ И ВРЕМЕНИ» — официальный способ расчета номера недели в Российской Федерации. По...
int tip=OrderType();
if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
この断片の2行目にエラーがあることは、すでにお伝えしました。OrderType()関数が呼ばれる 前に、OrderSelect()関数で 注文が選択されている必要があります。
3 行目にエラーがあります: しかし、番号 1 の注文はありますか? 最小番号が 1、つまりアカウントが 1 から始まる場合、最大番号はその番号と同じになります (注文 番号が 1、2、3、4、5 の合計 5 つの注文が あるとします)。OrdersHistoryTotalにカーソルを置いてF1キーを押すと、その例が表示されます。では、最大発注数はどのくらいなのでしょうか?
先ほど、月の日付を7で割って丸めるというご提案がありましたが、これは2つ目の表で行っています。
あなたのアルゴリズムが理解できない。
今、私が考えていることは、こういうことです。
1.月の初めの日の曜日を 決める。
2.週明けまであと何日あるかを調べる(水曜日(3)→月曜日7-3=4でした)。
3.5日目-2週目の始まり
4. 次に、ループの中で、5 + 7 * x から 5 + 7 * (x +1) (x - 週の数から1を引いた数) の範囲に該当する場合、その週を 探します。
でも、複雑だから、もっと簡単な方法があるのでは?
アレクセイ、私たちは違うことを話しているんだ。問題は、その月の何週目かではなく、その月の中でこの名前の週の最初の日を決めることだった。これらは異なる課題であり、結果的に異なる解決策となります。
63年間、月の週数の計算方法がいまだにわからない。例えば、ロシアでは月曜日が週の初めとされています。月が日曜日から始まるとしたら、月曜日はどのように数えるのでしょうか?2週目が始まったのでしょうか?それとも何?この質問は修辞的なもので、それについて極論を始める必要はないでしょう。
アレクセイ、私たちは違うことを話しているんだ。問題は、その数字が月のどの週にあるかではなく、その月にその名前の週の最初の日であるかどうかであった。これらは異なる課題であり、結果的に異なる解決策となります。
63年間、私はいまだに月の週数の数え方がわからない。例えば、ロシアでは週の初めが月曜日だとしよう。月が日曜日から始まる場合、月曜日はどのようにカウントされるのでしょうか?2週目が始まったのでしょうか?それとも何?この質問は修辞的なもので、それについて極論を始める必要はないでしょう。
なるほど。私にとっては決定的な問題なのですが...。
アレクセイ、私たちは違うことを話しているんだ。問題は、その数字が月のどの週にあるかではなく、その月にその名前の週の最初の日であるかどうかであった。これらは異なる課題であり、結果的に異なる解決策となります。
63年間、月の週数の計算方法がいまだにわからない。例えば、ロシアでは月曜日が週の初めとされています。月が日曜日から始まるとしたら、月曜日はどのように数えるのでしょうか?2週目が始まったのでしょうか?それとも何?この質問は修辞的なもので、それについて極論を始める必要はないでしょう。
この断片の2行目にエラーがあることは、すでにお伝えしました。OrderType()関数が呼ばれる 前に、OrderSelect()関数で 注文が選択されている必要があります。
3 行目にエラーがあります: しかし、番号 1 の注文はありますか? 最小番号が 1、つまりアカウントが 1 から始まる場合、最大番号はその番号と同じになります (注文番号が 1、2、3、4、5 の合計 5 つの注文があるとします)。OrdersHistoryTotalにカーソルを置いてF1キーを押すと、その例が表示されます。では、最大発注数はどのくらいなのでしょうか?
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))
int tip=OrderType();
今は正しいのでしょうか?
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) - так какой наибольший номер ордера?
int tip=OrderType();
で、今はどうなんでしょう?
スクリプトを書き、各オペレータの後に情報を表示する + GetLastError() と Alert()- 上記のスクリプト例を参照してください。
しかし、エラーコードを表示するためには、_LastError変数からエラーコードを取得する必要があります。そうしないと、軽い "debug print" でロジックを破壊してしまう可能性があります。
GetLastError()は同時にGetXXX()のために、エラーコードを0にリセットして内部状態を変更するという、当たり前のことを行っています。
印刷時のみ、_LastError変数からエラーコードを取得した方が良い。そうしないと、軽い "デバッグ印刷 "でロジックを破壊する可能性がある。
GetLastError()は、同時にGetXXX()のために、エラーコードを0にリセットして内部状態を変更する、という当たり前のことをします。
エラーコードを 変数に格納してエラーをリセットするか、_LastErrorに格納して後で使用するかは、好みの問題です。
上記のアルゴリズムを下から上に読み上げるとこんな感じです。