nijiayang 发表于 2003-10-20 23:26

一个小题目,各位编程高手看看,给点意见啊。

任意定义2个日期,年-月-日, 计算2个日期相差多少年,多少月,另几天。
我想了几个法子,都要编一堆程序,有没有什么简便的算法。

two steps 发表于 2003-10-21 16:18

选公元一年一月一日作为零起点.
剩下的任何一天都可折合成自然数, 然后2个自然数一减就得了

nijiayang 发表于 2003-10-21 18:54

你没理解题目

这样减出来只是多少多少天,但按人的习惯,要换成差几年几个月另几天。

ningguo 发表于 2003-11-21 21:13

//datum.h
class Datum
{
        int tag,monat,jahr;
public:
        Datum():tag(0),monat(0),jahr(0){}
        Datum(char *);
        void ausgabe() const;
        int diff(int ) const;
};

//datum.cpp
#include <iostream.h>
#include "datum.h"

Datum::Datum(char *ad)
{
        tag=(ad-48)*10+ad-48;
        monat=(ad-48)*10+ad-48;
        jahr=(ad-48)*1000+(ad-48)*100+(ad-48)*10+ad-48;
}

int Datum::diff(int ajahr) const
{
        return ajahr-jahr;
}

void Datum::ausgabe() const
{
        cout<<tag<<"."<<monat<<"."<<jahr;
}

houqi 发表于 2004-4-24 10:05

其实可以在VB.    MSDN 里都有该方法的实例
页: [1]
查看完整版本: 一个小题目,各位编程高手看看,给点意见啊。