Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
1

дата => дни с 1990 года

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

задача такая, вводится дата, например 11.11.2010
и нужно перевести её в дни с начала например 1990 года... как можно проще
с учётом весокосных годов и тд..
и если не сложно, побольше комментариев
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2010, 16:54
Ответы с готовыми решениями:

Рабочий струмент, аж с 1990 года.
Работал я на ЗЭМЗе с 1990г. (цех.11) регулировщиком РЭА, собирали мы там отечественные Apple II - ...

Определить количество и средний пробег автомобилей, выпущенных до 1990 года
Определить количество и средний пробег автомобилей, выпущенных до 1990 года. Ребят помогите с...

Определить название месяца по количеству дней прошедших с 1 января 1990 года
Составить программу : с 1 января 1990 года по некоторый день прошло n дней, определить название...

С начала 1990 года по некоторый день прошло n месяцев и 2 дня (n ≥ 1)
С начала 1990 года по некоторый день прошло n месяцев и 2 дня (n ≥ 1). Определить название...

6
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
11.11.2010, 15:02  [ТС] 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;
}
0
Day
1169 / 979 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
12.11.2010, 00:15 3
Посмотри сюда
Программа для вычисления количества дней между двумя датами
1
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
15.11.2010, 10:56  [ТС] 4
почитал про time.h, неужели нельзя как то с помощью неё обойтись
http://ru.wikipedia.org/wiki/Time.h
помогите
0
Day
1169 / 979 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
15.11.2010, 12:30 5
deeflash, конечно, можно. Используй diftime, и учти, что в дне 24 часа, а в часе 3600 сек.
0
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
15.11.2010, 17:23  [ТС] 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 );
потом вычислить разницу между датами в секундах.
Разницу в секундах перевести в дни.
0
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
18.11.2010, 12:54  [ТС] 7
up!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2010, 12:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Напечатать фамилии, имена и подсчитать общее число жителей, родившихся после 1990 года
Даны результаты переписи населения, которые хранятся в памяти ЭВМ. Напечатать фамилии, имена и...

Напечатать фамилии, имена и подсчитать общее число жителей, родившихся после 1990 года
Даны результаты переписи населения, которые хранятся в памяти ЭВМ. Напечатать фамилии, имена и...

С января 1990 года по некоторый день прошло m месяцев определить название текущего месяца
Сянваря 1990 года по некоторый день прошло m месяцев определить название текущего месяца

С 1 января 1990 года по некоторый день прошло m месяцев и n дней, определить название текущего месяца
С 1 января 1990 года по некоторый день прошло m месяцев и n дней, определить название текущего...

Определить число людей, родившихся до 1985 года, и число людей, родившихся после 1990 года
1)Известен год рождения-каждого человека из группы. Определить число людей, родившихся до 1985...

Даны результаты переписи населения. Вывести фамилии, имена и подсчитать количество жителей, родившихся после 1990 года
СРОЧНО нужна помощь по решению задачи Условие: Даны результаты переписи населения, которые...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.