0

C ++で合計X日をX週間に変換しようとしていますが、これはオンラインで見たもので、機能していません:

int weeks = ((days % 365) / 7);

たとえば、days = 8 の場合、技術的には 2 週目にあるため、int 週は = 2 になるはずです。同様に、15 日は 3 を出力するはずです。

ありがとう。

4

3 に答える 3

8

daysが整数型であると仮定すると、次を使用できます。

int weeks = (days + 6) / 7

これは、整数除算が小数部分を切り捨てるために機能します。

于 2013-02-01T00:37:28.683 に答える
1

整数除算は結果を切り捨てます。ceil週数を取得するには、部門を取る必要があります。1 年のうちの週を表す日だけが必要な場合は、mod を保持します。

言い換えると:

int weeks = (int)ceil(days / 7.0);

http://www.cplusplus.com/reference/cmath/ceil/

于 2013-02-01T00:39:28.980 に答える
0

日数が残っている場合は、1 つ追加するだけです

int weeks = days / 7 + (days % 7 ? 1 : 0);
于 2013-02-01T00:37:47.657 に答える