| iMatix home page
| << | < | > | >>
SFL Logo SFL
Version 2.11

 

valid_date

#include "sfldate.h"
Bool
valid_date (long date)

Synopsis

Returns TRUE if the date is valid or zero; returns FALSE if the date is not valid.

Source Code - (sfldate.c)

{
    int
        month,
        day;
    Bool
        feedback;
    static byte
        month_days [] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

    month = GET_MONTH (date);
    day   = GET_DAY   (date);

    if (date == 0)
        feedback = TRUE;                /*  Zero date is okay                */
    else
    if (month < 1 || month > 12)
        feedback = FALSE;               /*  Month out of range               */
    else
    if ((day < 1 || day > month_days [month - 1])
    ||  (month == 2 && day == 29 && !leap year (GET_YEAR (date))))
        feedback = FALSE;               /*  Day out of range                 */
    else
        feedback = TRUE;                /*  Zero date is okay                */

    return (feedback);
}

| << | < | > | >> iMatix Copyright © 1996-2000 iMatix Corporation