ホームページ >バックエンド開発 >PHPチュートリアル >出席が記録されない問題
従業員のパンチイン データがテーブル A に記録されており、一部の従業員がパンチインを忘れた場合、その月に従業員がパンチインに失敗した回数をどのように数えればよいでしょうか。私の最初のアイデアは次のとおりです。1 日に 4 回パンチインする必要がある場合、4*その月の日数 = パンチの総数、そしてパンチの総数 - パンチされたレコードの数 = を使用します。打ち込まなかった回数。
しかし、私たちの会社は毎週月曜日が休みなので、パンチインの総数には月曜日が含まれない必要があります。ただし、月曜日が 4 日ある月もあれば、月曜日が 5 日ある月もあります。の場合、合計チェックイン数は 16 回減算されます。その月に月曜日が 5 回ある場合は、20 回減算されます。では、月に月曜日が何回あるかを判断するにはどうすればよいでしょうか。
毎月の最初の日が何曜日かわかりませんか?
分かりません、なぜですか?
(月の日数 - (7 - 初日の週の値)) / 7
四捨五入は有効な週数です
たとえば、今月: (31-(7-3))/7 =3.857
得られた値 それは月曜日が何回あるかと何の関係がありますか?
echo ceil((31-(7-3))/7); //4
当然、4週間に月曜日が4回あります
たとえば、今年の12月は、
echo ceil((31-(7) -1 ))/7); //値は 4 です
でも月曜日は 5 つあります
あなたは 7-1 なので、この 1 はカウントされませんか?
次に、1 か月に木曜日が何回あるかを判断するには、(1 か月の日数 - (7 - 週の 4 日目の値)) / 7 ですか??