Программа на Си

Доброго времени суток!
Помогите пожалуйста с одной очень нестандартной программой для использования на Линуксе
(Разработать программу перечисления всех месяцев любого указанного или текущего года, которые начинаются в одинаковый день недели. Требуемый номер года должен передаваться программе аргументом командной строки ее вызова. При этом если год не указан то рассматривается текущий год. Искомый результат должен отображаться в 7 строках потока стандартного вывода. В каждой строке должны быть записаны аббревиатуры названий дня недели и всех месяцев, которые начинаются в этот день)
Я набросал кое что, но не уверен, что правильно

#include <time.h>                                                               // заголовок файл для времени и даты
#include <stdio.h>                                                              // заголовок стандартного ввода-вывода

int main(int argc, char* argv[])                                        // Основная функция программы
{
int day;                                                                                 // число месяца
int mon;                                                                               // номер месяца
int year;
struct tm drec;                                                                   // структура даты
struct tm start, end;
start.tm_mday = 12;
start.tm_mon = 11;
start.tm_year = 1;
start.tm_sec = start.tm_min = start.tm_hour = start.tm_isdst = 0;
end.tm_mday = 19;
end.tm_mon = 0;
end.tm_year = 138;
end.tm_sec = end.tm_min = end.tm_hour = end.tm_isdst = 0;
char week[4];                                                                    // аббревиатура дня недели

if(argc > 1)                                                                         // проверка числа аргументов
{
if (sscanf(argv[1], "%d", &year)<3)
{
printf ("Incorrect format\n");
return(-1);
}

«Я набросал кое что» — ну и как? работает? Думаешь, что достаточно запостиить любой кусок кода и все тут же кинутся делать за тебя твоё задание?

Читай документацию по функциям:

mktime    Convert tm structure to time_t (function )
time      Get current time (function )

localtime    Convert time_t to tm as local time (function )
gmtime     Convert time_t to tm as UTC time (function )

Плюс, возможно:

asctime    Convert tm structure to string (function )

В твоей программе основная связка из функций будет mktime-localtime.
Со структурой tm удобно работать при задании значений по отдельным полям. Последовательный вызов функций mktime и localtime заполнит остальные поля соответствующими значениями. Останется только проанализировать, подсчитать по дням недели и вывести окончательный результат. Успехов!

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.