Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 95
1

Сравнение DateTime через структуры

23.06.2014, 17:22. Просмотров 556. Ответов 3
Метки нет (Все метки)

Помогите с идеей и реализацией, а то ничего не приходить в голову.
Есть структура

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 typedef struct DateTime {
    int year , month , day , hour , minute ;
    } DateTime ;
 
    typedef enum Role {
    Admin, Writer, Client
    } Role;
 
    typedef struct User {
    char firstName [ SHORTSTRLEN + 1];
    char lastName [ SHORTSTRLEN + 1];
    char email [ SHORTSTRLEN + 1];
    char login [ SHORTSTRLEN + 1];
    DateTime created ;
    DateTime lastLogin ;
    Role role ;
    } User ;
в ней размещены данные пользователей, с клавиатуры вводится Date и Time и нужно отсортировать пользователей с DateTime lastLogin > введенной (то есть активные пользователи). Вопросы: 1.Можно ли загнать дату с клавиатуры в существующие структуры или нужно что то создавать новое? 2.Как сравнить даты через структуры используя qsort и compare 3.Как отсортировать нужных пользователей с DateTime lastLogin > введенной
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2014, 17:22
Ответы с готовыми решениями:

Сравнение DateTime - Почему сравнение запаздывает на 1 мин
public DateTime NextShort(DateTime cur, int ofset, int period) { var temp =...

Сравнение в DateTime
DateTime time = DateTime.Now; int h = time.Hour; if (s >= 18 && s < 00) { TextBox1.Text =...

Сравнение DateTime
Вот такой код string connstr =...

Сравнение двух DateTime
Доброго времени суток всем. Начинающий программист. Кто может подсказать - как сравнить два...

3
Модератор
Эксперт JavaЭксперт CЭксперт С++
10809 / 6563 / 1611
Регистрация: 25.07.2009
Сообщений: 12,339
24.06.2014, 04:13 2
WolfEater, я бы велосипеды не изобретал, хранил бы время целыми числами в time_t, а в привычный человеку вид и обратно опять же стандартными функциями из time.h преобразовывал. А в таком виде для qsort как-то так будет
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
int cmp(const void * a, const void * b) {
    DateTime * da = (DateTime*)a;
    DateTime * db = (DateTime*)b;
 
    if ( da->year == db->year ) {
        if ( da->month == db->month ) {
            if ( da->day == db->day ) {
                if ( da->hour == db->hour ) {
                    return da->minute - db->minute;
                }
                else {
                    return da->hour - db->hour;
                }
            }
            else {
                return da->day - db->day;
            }
        }
        else {
            return da->month - db->month;
        }
    }
    else {
        return da->year - db->year;
    }
}
0
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 95
24.06.2014, 17:05  [ТС] 3
easybudda, Я бы и рад не изобретать, но препод хочет так, через структуры. Два варианта он уже забраковал.
0
Клюг
7661 / 3176 / 383
Регистрация: 03.05.2011
Сообщений: 8,381
24.06.2014, 21:01 4
WolfEater, я вам тут табличку накопал(значения в секундах):
Код
1 hour  = 3600.     0xE10
1 day   = 86400.    0x15180
1 week  = 604800.   0x93A80
28 days = 2419200.  0x24EA00
29 days = 2505600.  0x263B80
30 days = 2592000.  0x278D00
31 days = 2678400.  0x28DE80
60 days = 5184000.  0x4F1A00
1 year  = 31536000. 0x1E13380
1 leap  = 31622400. 0x1E28500

Offset from 00:00:00 01-jan to start of each month:
     normal      leap
 jan  0x0000000  0x0000000
 feb  0x028DE80  0x028DE80
 mar  0x04DC880  0x04F1A00
 apr  0x076A700  0x077F880
 may  0x09E3400  0x09F8580
 jun  0x0C71280  0x0C86400
 jul  0x0EE9F80  0x0EFF100
 aug  0x1177E00  0x118CF80
 sep  0x1405C80  0x141AE00
 oct  0x167E980  0x1693B00
 nov  0x190C800  0x1921980
 dec  0x1B85500  0x1B9A680
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2014, 21:01

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

Сравнение двух datetime
Всем привет! Вопрос: как сравнить две даты с точностью до минут? То есть секунды и миллисекунды не...

Сравнение datetime с переменной
привет всем! помогите, пожалуйста создать запрос! Необходимо создать запрос, чтобы столбец с...

Сравнение даты(DateTime, С#) с Access
Здравствуйте! Как можно сравнить в SQL запросе дату которая в базе с тему что у меня есть в...

Сравнение времени DateTime.Now.Hour
foreach (Label item in groupBox1.Controls.OfType<Label>()) { ...


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

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

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