Тема: Часовий пояс
Підкажіть будь ласка, як зробити щоб після введеня (1-23) можна було вибрати чи продовжити роботу з програмкою чи завершити.
#include <stdio.h>
#include <time.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
setlocale(LC_CTYPE, "rus");
time_t rawtime;
struct tm * time_num;
time(&rawtime);
time_num = localtime(&rawtime);
struct time_zon
{
char zone_name[50];
int time_i;
};
struct time_zon time_zon[24];
char zone_name_string[] = "!Нiуе, Самоа !-13 !Гаваї !-12 !Аляска !-11 !Пiвнiчноамериканськи тихоокеанський час !-10 !Гiрський час(США, Канада i Мексика) !-9 !Центральний час !-8 !Пiвнiчноамериканський схiдний час !-7 !Атлантичний час !-6 !Пiвденноамериканський захiдний час (Бразилiа, Буенос-Айрес, Джорджтаун), Ґренландiя !-5 !Середньоатлантичний час !-4 !Азорськi острови, Кабо-Верде !-3 !Захiдноєвропейський час (Дублiн, Единбург, Лiсабон, Лондон), Касабланка, Монровiя !-2 !Центральноєвропейський час !-1 !Схiдноєвропейський час (Україна, Калiнiнградський час Росiї) !+0 !Росiя (Москва) !+1 !Грузiя, Об'єднанi Арабськi Емiрати !+2 !Єкатеринбурзький час Росiї !+3 !Росiя (Омськ) !+4 !Красноярський час Росiї, Австралiя (Захiдна Австралiя) !+5 !Iркутський час Росiї !+6 !Якутський час Росiї, Пiвденна Корея, Японiя !+7 !Росiя (Владивосток) !+8 !Середньоколимський час Росiї, Центрально-тихоокеанський час !+9 !";
int j = 0, z, k, i;
for (i = 1; i < 24; i++) {
char zone[50];
char time_i_str[3];
j++;
z = 0;
do
{
zone[z] = zone_name_string[j];
z++;
j++;
}
while (zone_name_string[j] != '!');
j++;
k = 0;
do
{
time_i_str[k] = zone_name_string[j];
k++;
j++;
}
while (zone_name_string[j] != '!');
memcpy(time_zon[i].zone_name, zone, z);
time_zon[i].zone_name[z-1] = 0;
time_zon[i].time_i = atoi(time_i_str);
}
int num, timep_hour;
printf("Поточний час у вашому часовому поясi: %d:%d:%d", time_num->tm_hour, time_num->tm_min, time_num->tm_sec);
printf("\n");
printf("\nВведiть номер часового поясу iз списку нижче:\n01. UTC-11:00 Нiуе, Самоа\n02. UTC-10:00 Гаваї\n03. UTC-9:00 Аляска\n04. UTC-8:00 Пiвнiчноамериканський тихоокеанський час\n05. UTC-7:00 Гiрський час(США, Канада i Мексика)\n06. UTC-6:00 Центральний час\n07. UTC-5:00 Пiвнiчноамериканський схiдний час\n08. UTC-4:00 Атлантичний час\n09. UTC-3:00 Пiвденноамериканський захiдний час (Бразилiа, Буенос-Айрес, Джорджтаун)\n10. UTC-2:00 Середньоатлантичний час\n11. UTC-1:00 Азорськi острови, Кабо-Верде\n12. UTC+00:00 Захiдноєвропейський час (Дублiн, Единбург, Лiсабон, Лондон), Касабланка, Монровiя\n13. UTC+1:00 Центральноєвропейський час\n14. UTC+2:00 Схiдноєвропейський час (Україна, Калiнiнградський час Росiї)\n15. UTC+3:00 Росiя (Москва)\n16. UTC+4:00 Грузiя, Об'єднанi Арабськi Емiрати\n17. UTC+5:00 Єкатеринбурзький час Росiї\n18. UTC+6:00 Росiя (Омськ)\n19. UTC+7:00 Красноярський час Росiї, Австралiя (Захiдна Австралiя)\n20. UTC+8:00 Iркутський час Росiї\n21. UTC+9:00 Якутський час Росiї, Пiвденна Корея, Японiя\n22. UTC+10:00 Росiя (Владивосток)\n23. UTC+11:00 Середньоколимський час Росiї, Центрально-тихоокеанський час ");
povt:printf("\nВведiть номер: ");
scanf("%d", &num);
printf("\n");
if (num > 23 || num < 1) {
printf("\nВведено неправильне значення.");
goto END;
}
time(&rawtime);
time_num = localtime(&rawtime);
timep_hour = 0;
if (time_zon[num].time_i == 0) {
printf("Поточний час у часовому поясi %s: %d:%d:%d\n", time_zon[num].zone_name, time_num->tm_hour, time_num->tm_min, time_num->tm_sec);
goto END;
}
timep_hour = time_num->tm_hour + time_zon[num].time_i;
if (timep_hour == 24) timep_hour = 0;
printf("Поточний час у часовому поясi %s: %d:%d:%d\n", time_zon[num].zone_name, timep_hour, time_num->tm_min, time_num->tm_sec);
printf("\n");
{
END:
getch();getch();
goto povt;
return 0;
}
}