Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
deeflash
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
#1

дата => дни с 1990 года - C++

08.11.2010, 16:54. Просмотров 692. Ответов 6
Метки нет (Все метки)

задача такая, вводится дата, например 11.11.2010
и нужно перевести её в дни с начала например 1990 года... как можно проще
с учётом весокосных годов и тд..
и если не сложно, побольше комментариев
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 16:54     дата => дни с 1990 года
Посмотрите здесь:

C++ Определить тип «дни недели» и выдать все «черные» пятницы года
Дата не високосного года (31 декабря не учитывать). Вывести дату завтрашнего дня C++
Известен год рождения каждого человека из группы. Определить число людей, родившихся до 1985 и число после 1990 г. C++
Задана дата в пределах года (число – от 1 до 31, месяц – от 1 до 12). Проверить корректность введенных данных C++
C++ На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты
C++ Определить название месяца по количеству дней прошедших с 1 января 1990 года
Найти книги, изданные после 1990 года, в названии которых есть слово "информатика" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
deeflash
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
11.11.2010, 15:02  [ТС]     дата => дни с 1990 года #2
вот чтото похожее, помогите плиииз

Считывает дату в формате 07/21/55 и выводит в формате 1955.g. 21. julija. Названия месяцев задать как перечисляемый тип.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
 
const char *months[] = {
    "Jan", "Feb", "Mar",
    "Apr", "May", "Jun",
    "Jul", "Aug", "Sep",
    "Oct", "Nov", "Dec"
};
 
enum monvals {
    JAN, FEB, MAR,
    APR, MAY, JUN,
    JUL, AUG, SEP,
    OCT, NOV, DEC
};
 
 
int main(void) /* ANSI C89 */
{
    int retval;
    char buffer[1000], *p;
    char monstr[100], daystr[100], yearstr[100];
    enum monvals monval;
    int dayval, yearval;
    
    
    printf("enter date (mm/dd/yy): ");
    fflush(stdout);
    
 
    p = fgets(buffer, sizeof buffer, stdin);
    
    if (p == NULL) {
        fprintf(stderr, "error 1" "\n");
        return EXIT_FAILURE;
    }
    
    
    retval = sscanf(
        buffer,
        "%99[^/]/%99[^/]/%99[^\n]",
        monstr, daystr, yearstr
    );
    
    if (retval != 3) {
        fprintf(stderr, "error 2" "\n");
        return EXIT_FAILURE;
    }
    
    
    monval = atoi(monstr)-1;
    dayval = atoi(daystr);
    yearval = atoi(yearstr)+1900;
    /* значения могут переполниться */
    
    
    /* здесь нужно проверить границы monval, dayval, yearval */
    
    
    printf("%d.g. %d. %s." "\n", yearval, dayval, months[monval]);
    
    
    return EXIT_SUCCESS;
}
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
12.11.2010, 00:15     дата => дни с 1990 года #3
Посмотри сюда
Программа для вычисления количества дней между двумя датами
deeflash
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
15.11.2010, 10:56  [ТС]     дата => дни с 1990 года #4
почитал про time.h, неужели нельзя как то с помощью неё обойтись
http://ru.wikipedia.org/wiki/Time.h
помогите
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
15.11.2010, 12:30     дата => дни с 1990 года #5
deeflash, конечно, можно. Используй diftime, и учти, что в дне 24 часа, а в часе 3600 сек.
deeflash
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
15.11.2010, 17:23  [ТС]     дата => дни с 1990 года #6
я пробовал, но безуспешно, не поможете?

Добавлено через 1 час 51 минуту
вот чего нашел, но реализовать не получается
помогите!

В time.h структура

C
1
2
3
4
5
6
7
8
9
10
11
struct tm {
        int tm_sec;     /* seconds after the minute - [0,59] */
        int tm_min;     /* minutes after the hour - [0,59] */
        int tm_hour;    /* hours since midnight - [0,23] */
        int tm_mday;    /* day of the month - [1,31] */
        int tm_mon;     /* months since January - [0,11] */
        int tm_year;    /* years since 1900 */
        int tm_wday;    /* days since Sunday - [0,6] */
        int tm_yday;    /* days since January 1 - [0,365] */
        int tm_isdst;   /* daylight savings time flag */
        };
по идее можно заполнить своими данными
нашел такую вот формулу
time_t mktime( struct tm *timeptr );
потом вычислить разницу между датами в секундах.
Разницу в секундах перевести в дни.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2010, 12:54     дата => дни с 1990 года
Еще ссылки по теме:

Напечатать фамилии, имена и подсчитать общее число жителей, родившихся после 1990 года C++
Вывести сведения о книгах, изданных с 1990 г., в названии которых содержится заданное слово C++
C++ По результатам метеорологических исследований за январь месяц 1990-1999 годов, определить в каком году было бо
Дата изменении и дата создания файла C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
deeflash
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
18.11.2010, 12:54  [ТС]     дата => дни с 1990 года #7
up!!!!
Yandex
Объявления
18.11.2010, 12:54     дата => дни с 1990 года
Ответ Создать тему
Опции темы

Текущее время: 16:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru