Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Написать программу, которая показывает реальное время в выбранных
- городах мира. Программа должна уметь просчитывать разницу времени для двух
- произвольных городов мира, которые выбрал пользователь.
- Должна быть на написана на чистом C (си).
- */
- #include "stdafx.h"
- #include <stdio.h> //pritnf, scanf
- #include <locale.h> //setlocale
- #include <string.h> //strcmp
- #include <time.h> //time, gmtime, mktime
- #include <limits.h> //CHAR_MIN
- #include <stdlib.h>
- #include <windows.h>
- int main(void)
- {
- //setlocale(LC_ALL, "");
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- char city[20];
- char city2[20];
- int hour1, hour2, hour3, i;
- time_t rawtime;
- struct tm * ptm;
- time(&rawtime); // определить текущую дату в секундах
- ptm = gmtime(&rawtime); // дата и время в формате GMT
- // Переменная для сохранения текущего времени
- time_t ttime;
- // Считываем текущее время
- ttime = time(NULL);
- // С помощью функции ctime преобразуем считанное время в
- // локальное, а затем в строку и выводим в консоль.
- printf("Время: %s\n", ctime(&ttime));
- //24 строки города по 20 символов
- const char *cities[] = {
- "Исламабад",
- "Дакка",
- "Джакарта",
- "Сингапур",
- "Сеул",
- "Аганья",
- "Канберра",
- "Маджуро",
- "Пагопаго",
- "Веллингтон",
- "Анкоридж",
- "Адамстаун",
- "Калгари",
- "Манагуа",
- "Панама",
- "Сан-Хуан",
- "Асунсьон",
- "Бразилия",
- "Прая",
- "Рабат",
- "Тунис",
- "Киев",
- "Москва",
- "Баку",
- NULL // зачем привязываться к размеру массива, если можно добавить в конец нуль.
- };
- //Вывод массив горов на консоль
- printf("Порядковый номер города равен часовому поясу %s\n");
- for (i = 0; cities[i]; i++) // выполняется пока не встретит нуль
- {
- printf(" %d %s\n",i, cities[i]);
- }
- //Введите название города
- printf("Введите название города: ");
- scanf("%s", city);
- printf("Введите название другого города: ");
- scanf("%s", city2);
- //Поиск в массиве строк
- for (i = 0; cities[i]; i++)
- {
- if (!strcmp(city, cities[i]))
- {
- hour1 = i;
- }
- if (!strcmp(city2, cities[i]))
- {
- hour2 = i;
- }
- }
- //Считаем разницу в часах
- hour3 = abs(hour2 - hour1);
- printf("Разница во времени между обраными городами %d\n", hour3);
- //Реальное время для избранных городов
- printf("Реальное время для города %s\n", city);
- printf("%d:%d\n", (ptm->tm_hour + hour1) % 24, ptm->tm_min);
- printf("Реальное время для города %s\n", city2);
- printf("%d:%d\n", (ptm->tm_hour + hour2) % 24, ptm->tm_min);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement