Преобразование минут в 24-часовой формат - PullRequest
0 голосов
/ 29 мая 2020

Описание проблемы:

Если я введу:

время в пути: 15 минут

first_train_time: 1300 ---> половина десятого

last_train_time : 1500 ---> три часа

частота_времени: 15 минут

Чтобы получить правильный результат, первый столбец начинается с указанного c времени 1300 и увеличивается на (частота_время) до указанного (last_train_time).

Второй столбец начинается с (first_train_time + frequency_time + 2 минуты).

Третий столбец начинается с (first_train_time + 2 * frequency_time + 2 * 2 минуты).

Четвертый столбец начинается с (first_train_time + 3 * frequency_time + 3 * 2 минуты).

Пятый столбец начинается с (first_train_time + 4 * frequency_time + 3 * 2 минуты).

Результат должен быть:

col 1     col2    col3   col4    col5
1300      1317    1334   1351    1406
1315      1332    1349   1406    1421
1330      1347    1404   1421    1436
1345      1402    1419   1436    1451
1400      1417    1434   1451    1506
1415      1432    1449   1506    1521
1430      1447    1504   1521    1536
1445      1502    1519   1536    1551 
1500      1517    1534   1551    1606

Когда я запускаю следующую функцию, я получаю странные результаты (почему не распечатывает 1445 и так далее).

cout<<"Enter the journey time (minutes) \n"
cin>>journey_time;
cout<<"Enter the first train time \n";
cin>>first_train_time;
cout<<"Enter the last train time \n";
cin>>last_train_time;
cout<<"Enter the frequency time \n";
cin>>frequency_time;
auto get_24hr = [](int minutes){ return (minutes/60)*100 + (minutes%60);};
auto get_minutes = [](int time_24){return (time_24/100)*60+  (time_24 % 100);};

for (int total_min_start= first_train_time; total_min_start <=last_train_time; total_min_start +=frequency_time)
{`
auto x = get_minutes(total_min_start); 
cout<<get_24hr(x)<<" \t "<<get_24hr(x+journey_time+waiting)<<" \t "<<get_24hr(x (2*journey_time+2*waiting)) <<" \t "<<get_24hr(x+(3*journey_time+3*waiting))<<" \t "<<get_24hr(x+(4*journey_time+3*waiting))
}}

 Wrong output :

 1300 1317 1334 1351 1406

 1315 1332 1349 1406 1421

 1330 1347 1404 1421 1436

 1345 1402 1419 1436 1451

 1400 1417 1434 1451 1506

 1415 1432 1449 1506 1521

 1430 1447 1504 1521 1536

 1405 1422 1439 1456 1511 -------> here the problem: it must be 1445, 1504 and so on 

 1420 1437 1454 1511 1526

 1435 1452 1509 1526 1541

 1450 1507 1524 1541 1556

 1505 1522 1539 1556 1611

 1520 1537 1554 1611 1626

 1535 1552 1609 1626 1641

Благодарю за любую помощь.

...