如题

解决方案 »

  1.   

    如果只是日期,直接相减如果是datetime类型,呵呵相减后是两时间间隔24小时的倍数
      

  2.   

    如果日期是Tdatetime型的就可以用daysbetween(first:Tdatetime;second:Tdatetime);
      

  3.   

    如果日期是Tdatetime型的就可以用daysbetween(first:Tdatetime;second:Tdatetime);
    如果不是Tdatetime,可以用systemtimetodatetime(datetime:Tdatetime);把系统日期转换成delphi类型的日期
      

  4.   

    /*******************************************************************************
    * º¯ÊýÃû³Æ£º GetDayNums                                                        *
    * ¹¦ÄÜÃèÊö£º ¼ÆËãÈÎÒâÈÕÆÚÖ®¼äµÄÌìÊý                                            *
    * ÊäÈë²ÎÊý£º ÈÕÆÚ×Ö·û´®                                                        *
    * Êä³ö²ÎÊý£º ÎÞ                                                                *
    * ·µ »Ø Öµ£º ÌìÊý                                                               *
    * ÆäËü˵Ã÷£º ÎÞ                                                                *
    * ÐÞ¸ÄÈÕÆÚ      °æ±¾ºÅ      ÐÞ¸ÄÈË      ÐÞ¸ÄÄÚÈÝ                               *
    * -----------------------------------------------------------------------------*
    * 2004.12.04    V1.2.01     kuangsong         ´´½¨                             *
    ********************************************************************************/
    int GetDayNums(UINT8 acDay_one[3][MAXFIELDLEN], UINT8 acDay_two[3][MAXFIELDLEN])
    {
    int y1, y2;
    int m1, m2;
    int d1, d2;
    int sum = 0;
    y1 = atoi(acDay_one[2]);
    y2 = atoi(acDay_two[2]); d1 = atoi(acDay_one[1]);
    d2 = atoi(acDay_two[1]); m1 = atoi(acDay_one[0]);
    m2 = atoi(acDay_two[0]); sum = abs(y2 - y1 - 1) * 365 + GetDaysOfLeap(y1, y2) + 
    GetDaysOfSameYear(y1, m1, d1, 12, 31) + GetDaysOfSameYear(y2, 1, 1, m2, d2);
    return sum;
    }int GetDaysOfSameYear(int y1, int m1, int d1, int m2, int d2)
    {
    int i;
    int count = 0;
    for (i = m1; i <= m2 - 1; i++)
    {
    switch(i)
    {
    case 1:
    case 3:
    case 5: 
    case 7: 
    case 8: 
    case 10:
    case 12:
    {
    count = count + 31;
    break;
    }
    case 4:
    case 6: 
    case 9: 
    case 11:
    {
    count += 30;
    break;
    }
    case 2:
    {
    if (IsLeapYear(y1) == 1)
    count += 29;
    else
    count += 28;
    break;
    }
    default:
    break; }
    //&Iuml;&Acirc;&Atilde;&aelig;&Euml;&atilde;&Aacute;&atilde;&Ecirc;&yacute;
    if (i == m1)
    {
    count -= d1;
    }
    count += d2; //&frac14;&Oacute;&Eacute;&Iuml;m2&Ocirc;&Acirc;&micro;&Auml;d2&Igrave;ì
    }
    return count;
    }int GetDaysOfLeap(int y1, int y2)
    {
    int count = 0;
    int i;
    for (i = y1; i <= y2; i++)
    {
    if (IsLeapYear(i) == 1)
    count++;
    }
    return count;
    }BOOL IsLeapYear(y)
    {
    if (((y %4 == 0) &&(y % 100 != 0))||(y % 100 == 0)) //&Egrave;ò&Auml;ê
    return 1;
    else
    return 0;
    }
      

  5.   

    daysbetween函数
    在DateUnit 单元