Advertisement
Guest User

timeconvertor_C

a guest
Dec 3rd, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. /*
  2. Написать программу, которая показывает реальное время в выбранных
  3. городах мира. Программа должна уметь просчитывать разницу времени для двух
  4. произвольных городов мира, которые выбрал пользователь.
  5. Должна быть на написана на чистом C (си).
  6. */
  7. #include "stdafx.h"
  8. #include <stdio.h> //pritnf, scanf
  9. #include <locale.h> //setlocale
  10. #include <string.h> //strcmp
  11. #include <time.h> //time, gmtime, mktime
  12. #include <limits.h> //CHAR_MIN
  13. #include <stdlib.h>
  14. #include <windows.h>
  15.  
  16. int main(void)
  17. {
  18.  
  19. //setlocale(LC_ALL, "");
  20. SetConsoleOutputCP(1251);
  21. SetConsoleCP(1251);
  22.  
  23. char city[20];
  24. char city2[20];
  25. int hour1, hour2, hour3, i;
  26.  
  27. time_t rawtime;
  28. struct tm * ptm;
  29. time(&rawtime); // определить текущую дату в секундах
  30. ptm = gmtime(&rawtime); // дата и время в формате GMT
  31.  
  32.  
  33.  
  34. // Переменная для сохранения текущего времени
  35. time_t ttime;
  36. // Считываем текущее время
  37. ttime = time(NULL);
  38. // С помощью функции ctime преобразуем считанное время в
  39. // локальное, а затем в строку и выводим в консоль.
  40. printf("Время: %s\n", ctime(&ttime));
  41.  
  42.  
  43.  
  44. //24 строки города по 20 символов
  45. const char *cities[] = {
  46. "Исламабад",
  47. "Дакка",
  48. "Джакарта",
  49. "Сингапур",
  50. "Сеул",
  51. "Аганья",
  52. "Канберра",
  53. "Маджуро",
  54. "Пагопаго",
  55. "Веллингтон",
  56. "Анкоридж",
  57. "Адамстаун",
  58. "Калгари",
  59. "Манагуа",
  60. "Панама",
  61. "Сан-Хуан",
  62. "Асунсьон",
  63. "Бразилия",
  64. "Прая",
  65. "Рабат",
  66. "Тунис",
  67. "Киев",
  68. "Москва",
  69. "Баку",
  70. NULL // зачем привязываться к размеру массива, если можно добавить в конец нуль.
  71. };
  72. //Вывод массив горов на консоль
  73. printf("Порядковый номер города равен часовому поясу %s\n");
  74. for (i = 0; cities[i]; i++) // выполняется пока не встретит нуль
  75. {
  76. printf(" %d %s\n",i, cities[i]);
  77. }
  78. //Введите название города
  79. printf("Введите название города: ");
  80.  
  81. scanf("%s", city);
  82.  
  83. printf("Введите название другого города: ");
  84. scanf("%s", city2);
  85.  
  86. //Поиск в массиве строк
  87. for (i = 0; cities[i]; i++)
  88. {
  89. if (!strcmp(city, cities[i]))
  90. {
  91. hour1 = i;
  92. }
  93. if (!strcmp(city2, cities[i]))
  94. {
  95. hour2 = i;
  96. }
  97. }
  98. //Считаем разницу в часах
  99. hour3 = abs(hour2 - hour1);
  100. printf("Разница во времени между обраными городами %d\n", hour3);
  101.  
  102. //Реальное время для избранных городов
  103. printf("Реальное время для города %s\n", city);
  104. printf("%d:%d\n", (ptm->tm_hour + hour1) % 24, ptm->tm_min);
  105.  
  106. printf("Реальное время для города %s\n", city2);
  107. printf("%d:%d\n", (ptm->tm_hour + hour2) % 24, ptm->tm_min);
  108.  
  109. system("pause");
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement