我的结构是:

struct stored
{
    char *dates; // 12/May/2010, 10/Jun/2010 etc..
};
// const
struct stored structs[] = {{"12/May/2010"}, {"12/May/2011"},
                           {"21/May/2009"}, {"13/May/2011"},
                           {"10/May/2011"}, {"19/May/2011"}};

我要做的是按stored.dates对struct“stored”进行排序。
qsort(structs, 9, sizeof(struct stored*), sortdates); // sortdates function

我不太确定那几天有什么好的方法来整理?把它们比作c字串?

最佳答案

我会使用如下方法将日期转换为数字:

year * 10000 + month * 100 + day;

然后做一个简单的数字比较(对于这个月,您需要将1月映射到1月,2月映射到2月,等等)。
如果要进行大量比较,可能需要在结构中缓存数值等效项。

关于c - 日期比较功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2466445/

10-11 22:59