相同的数学和数字不同的答案?

Same math and numbers different answers?

我正在写一个简单的程序,你给它一些天数,它返回与你给的天数相等的年数、周数和天数。 但我注意到即使在我检查数学时你也可以得到两个不同的答案,这在两种情况下都是有意义的。 有人可以向我解释为什么答案不同,哪个是正确的

    #include<iostream>

using namespace std;

int main()
{
    int y;
    int d,w;
    int Days;

    cin>>d;

    y=d/365;
    int LessThanAYearDays = d%365;
    Days=LessThanAYearDays%7;
    w=LessThanAYearDays/7;
    int SameDays = d%7;
    

    cout<<"answer1 is : "<<y<<" "<<w<<" "<<Days<< "\n";
    cout<<"answer2 is : "<<y<<" "<<w<<" "<<SameDays<< "\n";

    return 0;
}

一年中没有精确的周数,所以您显示的是不同的东西。他们在能被 7 整除的年份中是相同的

例如假设给定年份从星期二开始。

  • Days 对应于你上周二过去了多少天。
  • SameDays对应你今天是哪一天。

另请参阅 stdstd::chrono::duration, which is a count of time, and a std::chrono::time_point 之间的区别,std::chrono::duration, which is a count of time, and a std::chrono::time_point 是自特定日期 以来的时间计数