/*
* @file lab5_1.c
* @author Герасимюк Д.В., гр. 515і1
* @date 16 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 1
*/
#include "convtime.h"
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "ukr");
int time;
printf("Введiть час формату HHMMSS (як цiле число): ");
scanf("%d", &time);
int hours, minutes, seconds;
int status = convertTime(time, &hours, &minutes, &seconds);
if (status) {
printf("Години: %02d, Хвилини: %02d, Секунди: %02d\n", hours, minutes, seconds);
}
else {
printf("Неправильний формат часу\n");
}
return 0;
}
/*
* @file convtime.h
* @author Герасимюк Д.В., гр. 515і1
* @date 16 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 1
*/
#pragma once
/**
* перетворення часу з цілочисельного формату на години, хвилини та секунди
*
* @param time Час (HHMMSS)
* @param hours значення годин
* @param minutes значення хвилин
* @param seconds значення секунд
* @return 1, якщо перетворення успішне
* @return 0, якщо перетворення неуспішне
*/
int convertTime(int time, int* hours, int* minutes, int* seconds)
{
if (time < 0 || time >= 240000) {
return 0; // 0, якщо час неправильний
}
// години, хвилини та секунди з числа
*hours = time / 10000;
*minutes = (time / 100) % 100;
*seconds = time % 100;
if (*minutes < 0 || *minutes >= 60 || *seconds < 0 || *seconds >= 60) {
return 0;
}
return 1;
}