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

Вычислить количество дней, полных месяцев, и полных лет, прошедших между датами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Генерация случайных чисел в заданном диапазоне. http://www.cyberforum.ru/cpp-beginners/thread334169.html
Здесь сказано Не используйте % (получение остатка от деления) для ограничения получаемых случайных чисел. Это не самый лучший метод получения случайных чисел определенного диапазона значений Почему?
C++ Проблемма с логическим оператором if Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в последствии отображаются, а елси пользователь вводит символ 'n' (no), то на экран выводятся данные структуры по умолчанию. Вот моя неправильно работающая программа: #include <iostream> using namespace std; struct CandyBar { char name; ... http://www.cyberforum.ru/cpp-beginners/thread334159.html
Непонятная ошибка C++
Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому виду - В: 4 0 0 0 1 6 5 2 5 В матрице А числа идут как бы парами. Как получается матрица В из А? Пусть b - элемент матрицы В. i - номер строки в матрице А. j - первый элемент "пары", а значение - второй элемент.
C++ Как поместить в массив строк строку
Есть такой вот массив char s; ну или char** s; я никак не могу разобраться в этих указателях(( 1.Как поместить в него строку 2.Как извлечь из него строку
C++ Вывод строки в текстовый файл http://www.cyberforum.ru/cpp-beginners/thread334147.html
Вместо строки появляется нечто вроде 25d3fe4 Подскажите пожалуйста, в чем ошибка? ofstream fout; String str = Now(); fout << str.c_str();
C++ ofstream & ifstream :: binary read-write struct Не пойму в чем дело... но я не могу считать всю структуру FNTBINARY из файла, файл - это она и есть в бинарном виде, одна структура FNTBINARY. Размер структуры 72412, файл на диске весит 72440 откуда, берутся 8 байт? Формат записи-чтения установлен бинарный. Читается только часть, до chars... дальше мусор. Проверял, что пишется структура полностью адекватная перед записью, содержит нормальные... подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
19.07.2011, 14:56     Вычислить количество дней, полных месяцев, и полных лет, прошедших между датами
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
#include <stdio.h>
#include <string.h>
 
char* difference(int day1,  int month1, int yea1r, int day2,  int month2, int year2);
 
int main()
{
    int d1,m1,y1,d2,m2,y2;
    printf("Enter first date (day month year): ");
    scanf("%d %d %d",&d1,&m1,&y1);//данные вводятся через пробел, например 10 6 2000
    printf("Enter second date (day month year): ");
    scanf("%d %d %d",&d2,&m2,&y2);
    printf("Date1 - Date2 = %s\n",difference(d1,m1,y1,d2,m2,y2));
    return 0;
}
 
int leap(int y)
{
    return (int)((y % 4 == 0 && y% 100 != 0) || y % 400);
}
 
int maxday(int month,int year)
{
    int days[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
    if(leap(year))days[1]=29;
    return days[month-1];
}
 
char* difference(int day1,  int month1, int year1, int day2,  int month2, int year2)
{
    int d,m,y;
    char date[128];
    if(year1>=year2) {
        y=year1-year2;
        if(month1>month2) {
            m=month1-month2;
            d=day1+maxday(month2,year2)-day2;
            if(d>maxday(month2,year2))d-=maxday(month2,year2);
            else --m;
            --y;
        } else {
            m=12-month1+month2;
            d=day2+maxday(month1,year1)-day1;
            if(d>maxday(month1,year1))d-=maxday(month1,year1);
            else --m;
        }
    } else {
        y=year2-year1;
        if(month1>month2) {
            m=12-month1+month2;
            d=day1+maxday(month2,year2)-day2;
            if(d>maxday(month2,year2))d-=maxday(month2,year2);
            else --m;
            --y;
        } else {
            m=month2-month1;
            d=maxday(month1,year1)-day1+day2;
            if(d>maxday(month1,year1))d-=maxday(month1,year1);
            else --m;
        }
    }
    sprintf(date,"%d days, %d month, %d years\n",d,m,y);
    return date;
}
проверку на корректность вводимых данных сам допишешь.
 
Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru