Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time 工作时间计算器c++;_Time_Calculator - Fatal编程技术网

Time 工作时间计算器c++;

Time 工作时间计算器c++;,time,calculator,Time,Calculator,有人能帮我吗?我正在创建一个程序,在这个程序中,用户必须输入每天的输入和输出时间来计算每周工作时间。该计划旨在接受军事时间(如800、1700、2030等)。我的代码中没有错误,但我在转换时遇到了问题。如果输入845表示输入时间,输入1600表示输出时间。程序必须显示7.15。也就是说那天有7小时15分钟。但是(1600-845)/100不起作用,因为答案是7.55 这是节目单 #include <iostream.h> int main() { int day; double mH

有人能帮我吗?我正在创建一个程序,在这个程序中,用户必须输入每天的输入和输出时间来计算每周工作时间。该计划旨在接受军事时间(如800、1700、2030等)。我的代码中没有错误,但我在转换时遇到了问题。如果输入845表示输入时间,输入1600表示输出时间。程序必须显示7.15。也就是说那天有7小时15分钟。但是(1600-845)/100不起作用,因为答案是7.55

这是节目单

#include <iostream.h>
int main()
{
int day;
double mHr, tHr, wHr, thHr, fHr;
double in, out, total1;
char holiday;
do
{
    switch(day)
    {
    case 0:
        cout<<"Time In for Monday: ";
        cin>>in;
        cout<<"Enter Time Out for Monday: ";
        cin>>out;
        if (in<=800)
        {
            in = 800;
        }
        if (out>=1700)
        {
            out = 1700;
        }
        if ((out-in)<=400)
        {
            mHr = out - in;
        }
        else if ((out-in)>=500)
        {
            mHr = (out - in) - 100;
        }
        break;

    case 1:
        cout<<"Enter Time In for Tuesday: ";
        cin>>in;
        cout<<"Enter Time Out for Tuesday: ";
        cin>>out;
        if (in<=800)
        {
            in = 800;
        }
        if (out>=1700)
        {
            out = 1700;
        }
        if ((out-in)<=400)
        {
            tHr = out - in;
        }
        else if ((out-in)>=500)
        {
            tHr = (out - in) - 100;
        }
        break;

    case 2:
        cout<<"Enter Time In for Wednesday: ";
        cin>>in;
        cout<<"Enter Time Out for Wednesday: ";
        cin>>out;
        if (in<=800)
        {
            in = 800;
        }
        if (out>=1700)
        {
            out = 1700;
        }
        if ((out-in)<=400)
        {
            wHr = out - in;
        }
        else if ((out-in)>=500)
        {
            wHr = (out - in) - 100;
        }
        break;

    case 3:
        cout<<"Enter Time In for Thursday: ";
        cin>>in;
        cout<<"Enter Time Out for Thursday: ";
        cin>>out;
        if (in<=800)
        {
            in = 800;
        }
        if (out>=1700)
        {
            out = 1700;
        }
        if ((out-in)<=400)
        {
            thHr = out - in;
        }
        else if ((out-in)>=500)
        {
            thHr = (out - in) - 100;
        }
        break;

    case 4:
        cout<<"Enter Time In for Friday: ";
        cin>>in;
        cout<<"Enter Time Out for Friday: ";
        cin>>out;
        if (in<=800)
        {
            in = 800;
        }
        if (out>=1700)
        {
            out = 1700;
        }
        if ((out-in)<=400)
        {
            fHr = out - in;
        }
        else if ((out-in)>=500)
        {
            fHr = (out - in) - 100;
        }
        break;

    }
    day = day + 1;
}
while(day<5);
total1 = (mHr + tHr + wHr + thHr + fHr) / 100;
cout<<"*********************************************************************"<<endl;
cout<<"Weekly Time Record:"<<endl;
cout<<" The total number of working hours for regular hours: "<<total1<<" Hrs."<<endl;
cout<<"*********************************************************************"<<endl;
return 0;
#包括
int main()
{
国际日;
双mHr、tHr、wHr、thHr、fHr;
双进双出,全1;
夏尔假日;
做
{
开关(日)
{
案例0:
库丁;
库图特;
如果(in=1700)
{
out=1700;
}
如果((外入)=500)
{
mHr=(输出-输入)-100;
}
打破
案例1:
库丁;
库图特;
如果(in=1700)
{
out=1700;
}
如果((外入)=500)
{
tHr=(向外-向内)-100;
}
打破
案例2:
库丁;
库图特;
如果(in=1700)
{
out=1700;
}
如果((外入)=500)
{
wHr=(向外-向内)-100;
}
打破
案例3:
库丁;
库图特;
如果(in=1700)
{
out=1700;
}
如果((外入)=500)
{
thHr=(向外-向内)-100;
}
打破
案例4:
库丁;
库图特;
如果(in=1700)
{
out=1700;
}
如果((外入)=500)
{
fHr=(向外-向内)-100;
}
打破
}
天=天+1;
}

而(day最简单的方法可能是将每个输入时间转换为从午夜开始经过的分钟数,然后减去两个:

double calculateHours(int militaryStartTime, int militaryEndTime)
{
    int startHours = militaryStartTime / 100;
    int startMinutes = militaryStartTime % 100;
    int startTime = startHours * 60 + startMinutes; // minutes since midnight

    int endHours = militaryEndTime / 100;
    int endMinutes = militaryEndTime % 100;
    int endTime = endHours * 60 + endMinutes; // minutes since midnight

    return (endTime - startTime) / 60.0;
}

所以
16:00-08:45==(16+0/60)-(8+45/60)==(16-8)+(0-45)/60==8-15/60==7:45
。你必须将最右边的两个数字视为六位数,而不是小数。谢谢。但答案应该是7小时15分钟。而不是7小时45分钟。上午8:45到下午4:00将是7小时15分钟的工作做正确的计算,我显然没有!