See changelog
This commit is contained in:
@@ -1,3 +1,35 @@
|
||||
19990718-14:00 CET Eddie Runia <eddie@runia.com>
|
||||
* build32.bat
|
||||
bldhbpp.bat called
|
||||
* makefile.b16; makefile.b31; makefile.b32; makefile.icc; makefile.vc
|
||||
dates2 included
|
||||
* makedos.env
|
||||
very strange error. msgxxx could not include natmsg/msguk.c.
|
||||
I haven't seen this error before, -Isource/rtl was added to resolve
|
||||
the problem
|
||||
* source/rtl/dates.c; source/rtl/descend.c; source/rtl/hardcr.c;
|
||||
source/rtl/mtran.c
|
||||
Copyright Jose Lalin added
|
||||
* source/rtl/msgxxx.c
|
||||
Esparanto added
|
||||
+ source/rtl/natmsg/msgeo.c
|
||||
Esparanto added
|
||||
+ source/tools/dates2.c
|
||||
File from Jose Lalin added.
|
||||
The following modification have been made :
|
||||
* Symbol table added
|
||||
* Bug as reported by Andi resolved
|
||||
* Casts added to eliminate warnings produced by DJGPP
|
||||
* source/rtl/makefile
|
||||
dates.c added
|
||||
* include/initsymb.h; source/runner/runner.c; source/vm/initsymb.c
|
||||
Dates2 added to file list.
|
||||
+ tests/working/dates4.prg
|
||||
Test program tools/dates2 added
|
||||
+ tests/working/run_all.bat
|
||||
Batch file for testbench added. Will run test_all.prg and subsequently
|
||||
run all symbols
|
||||
|
||||
19990716-20:00 EDT David G. Holm <dholm@jsd-llc.com>
|
||||
* config/rules.cf
|
||||
+ Added ifeq section for BCC, which requires that the output
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
@echo off
|
||||
del build32.err
|
||||
make -fmakefile.b32 > build32.err
|
||||
make -fhbpplib.b32 > build32.err
|
||||
make -fmakefile.b32 >> build32.err
|
||||
make -fterminal.b32 >> build32.err
|
||||
call bldgt32.bat >> build32.err
|
||||
call bldhbpp.bat >> build32.err
|
||||
cd tests\working
|
||||
call bld32exe.bat ..\..\source\runner\runner runner >> build32.err
|
||||
cd ..\..
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
Console__InitSymbols();
|
||||
CopyFile__InitSymbols();
|
||||
Dates__InitSymbols();
|
||||
Dates2__InitSymbols();
|
||||
Descend__InitSymbols();
|
||||
Dir__InitSymbols();
|
||||
Environ__InitSymbols();
|
||||
|
||||
@@ -16,7 +16,7 @@ HARBOURLIB=$(HARBOURDIR)/libs/libharb.a
|
||||
|
||||
# compiler macros for DOS DJGPP
|
||||
CC=gcc
|
||||
CFLAGS=-Wall -g -DDEBUG -I. -I$(HARBOURDIR)/include -x c
|
||||
CFLAGS=-Wall -g -DDEBUG -I. -I$(HARBOURDIR)/include -I$(HARBOURDIR)/source/rtl -x c
|
||||
|
||||
%.c : %.prg
|
||||
../../bin/harbour -n -i$(HARBOURDIR)/include $<
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
|
||||
PROJECT: harbour.lib libs\b16\terminal.lib libs\win16\terminal.lib harbour.exe
|
||||
|
||||
harbour.lib : arrays.obj asort.obj classes.obj codebloc.obj dates.obj datesx.obj \
|
||||
harbour.lib : arrays.obj asort.obj classes.obj codebloc.obj dates.obj \
|
||||
dates2.obj datesx.obj \
|
||||
debug.obj descend.obj devoutp.obj dynsym.obj environ.obj error.obj \
|
||||
errorapi.obj errorsys.obj extend.obj files.obj \
|
||||
hardcr.obj initsymb.obj itemapi.obj math.obj memvars.obj \
|
||||
@@ -33,6 +34,7 @@ asort.obj : asort.c extend.h hbdefs.h
|
||||
classes.obj : classes.c extend.h hbdefs.h
|
||||
codebloc.obj : codebloc.c extend.h hbdefs.h
|
||||
dates.obj : dates.c extend.h hbdefs.h
|
||||
dates2.obj : dates2.c extend.h hbdefs.h
|
||||
datesx.obj : datesx.c extend.h hbdefs.h
|
||||
debug.obj : debug.c extend.h hbdefs.h
|
||||
descend.obj : descend.c extend.h hbdefs.h
|
||||
|
||||
@@ -22,7 +22,7 @@ harbour.lib : arrays.obj asort.obj classes.obj codebloc.obj copyfile.obj \
|
||||
set.obj strings.obj strcmp.obj symbols.obj tclass.obj \
|
||||
transfrm.obj
|
||||
|
||||
hbtools.lib : datesx.obj debug.obj hb_f.obj io.obj mathx.obj \
|
||||
hbtools.lib : dates2.obj datesx.obj debug.obj hb_f.obj io.obj mathx.obj \
|
||||
stringp.obj stringsx.obj \
|
||||
asciisum.obj ascpos.obj atdiff.obj \
|
||||
chareven.obj charmix.obj charodd.obj \
|
||||
@@ -76,6 +76,7 @@ msguk.obj : source\rtl\natmsg\msguk.c extend.h hbdefs.h
|
||||
dynsym.obj : source\vm\dynsym.c extend.h hbdefs.h
|
||||
initsymb.obj : source\vm\initsymb.c extend.h hbdefs.h
|
||||
|
||||
dates2.obj : source\tools\dates2.c extend.h hbdefs.h
|
||||
datesx.obj : source\tools\datesx.c extend.h hbdefs.h
|
||||
debug.obj : source\tools\debug.c extend.h hbdefs.h ctoharb.h itemapi.h
|
||||
hb_f.obj : source\tools\hb_f.c extend.h hbdefs.h filesys.api filesys.h fileio.ch
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
PROJECT: harbour.exe harbour.lib libs\b32\terminal.lib libs\win32\terminal.lib
|
||||
|
||||
harbour.lib : arrays.obj asort.obj classes.obj codebloc.obj \
|
||||
dates.obj datesx.obj debug.obj descend.obj devoutp.obj \
|
||||
dates.obj dates2.obj datesx.obj debug.obj descend.obj devoutp.obj \
|
||||
dir.obj dynsym.obj environ.obj error.obj \
|
||||
errorapi.obj errorsys.obj extend.obj files.obj \
|
||||
hardcr.obj hb_f.obj initsymb.obj itemapi.obj memvars.obj \
|
||||
@@ -29,6 +29,7 @@ asort.obj : asort.c extend.h hbdefs.h
|
||||
classes.obj : classes.c extend.h hbdefs.h
|
||||
codebloc.obj : codebloc.c extend.h hbdefs.h
|
||||
dates.obj : dates.c extend.h hbdefs.h
|
||||
dates2.obj : dates2.c extend.h hbdefs.h
|
||||
datesx.obj : datesx.c extend.h hbdefs.h
|
||||
debug.obj : debug.c extend.h hbdefs.h
|
||||
descend.obj : descend.c extend.h hbdefs.h
|
||||
|
||||
@@ -59,6 +59,7 @@ $(path_lib)\hbtools.lib: \
|
||||
$(path_obj)\chrcount.obj \
|
||||
$(path_obj)\chrfirst.obj \
|
||||
$(path_obj)\chrtotal.obj \
|
||||
$(path_obj)\dates2.obj \
|
||||
$(path_obj)\datesx.obj \
|
||||
$(path_obj)\debug.obj \
|
||||
$(path_obj)\hb_f.obj \
|
||||
@@ -93,6 +94,7 @@ $(path_obj)\classes.obj : {$(path_c)}classes.c $(path_h)\extend.h $(path_h)\hb
|
||||
$(path_obj)\codebloc.obj : {$(path_c)}codebloc.c $(path_h)\extend.h $(path_h)\hbdefs.h $(path_h)\itemapi.h
|
||||
$(path_obj)\copyfile.obj : {$(path_c)}copyfile.c $(path_h)\extend.h $(path_h)\hbdefs.h $(path_h)\itemapi.h $(path_h)\errorapi.h $(path_h)\error.ch $(path_h)\filesys.h $(path_h)\fileio.ch $(path_h)\filesys.api
|
||||
$(path_obj)\dates.obj : {$(path_c)}dates.c $(path_h)\extend.h $(path_h)\hbdefs.h $(path_h)\dates.h $(path_h)\set.h $(path_h)\errorapi.h $(path_h)\error.ch
|
||||
$(path_obj)\dates2.obj : {$(path_c)}dates2.c $(path_h)\extend.h $(path_h)\hbdefs.h
|
||||
$(path_obj)\datesx.obj : {$(path_c)}datesx.c $(path_h)\extend.h $(path_h)\hbdefs.h
|
||||
$(path_obj)\debug.obj : {$(path_c)}debug.c $(path_h)\extend.h $(path_h)\hbdefs.h $(path_h)\itemapi.h $(path_h)\ctoharb.h
|
||||
$(path_obj)\descend.obj : {$(path_c)}descend.c $(path_h)\extend.h $(path_h)\hbdefs.h
|
||||
|
||||
@@ -332,6 +332,9 @@ $(OBJ_DIR)\chrfirst.obj : $(TOOLS_DIR)\chrfirst.c
|
||||
$(OBJ_DIR)\chrtotal.obj : $(TOOLS_DIR)\chrtotal.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\dates2.obj : $(TOOLS_DIR)\dates2.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
$(OBJ_DIR)\datesx.obj : $(TOOLS_DIR)\datesx.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
||||
|
||||
|
||||
@@ -27,6 +27,11 @@
|
||||
* The following functions are Copyright 1999 David G. Holm <dholm@jsd-llc.com>:
|
||||
* HB_CTOD(), HB_DATE(), hb_dtoc().
|
||||
* See doc/hdr_tpl.txt, Version 1.2 or later, for licensing terms.
|
||||
*
|
||||
* The following functions are Copyright 1999 Jose Lalin <dezac@corevia.com>:
|
||||
* hb__seconds(), HB_SECONDS(), hb_cmonth(), HB_CMONTH(),
|
||||
* hb_cdow(), HB_CDOW(), HB_DAY(), HB_MONTH(), HB_YEAR(),
|
||||
* hb_dow(), HB_DOW()
|
||||
*/
|
||||
|
||||
#include <hbsetup.h>
|
||||
|
||||
@@ -1,5 +1,34 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
Harbour Project source code
|
||||
|
||||
Copyright(C) 1999 by Jose Lalin.
|
||||
http://www.Harbour-Project.org/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
The exception is that if you link the Harbour Runtime Library (HRL)
|
||||
and/or the Harbour Virtual Machine (HVM) with other files to produce
|
||||
an executable, this does not by itself cause the resulting executable
|
||||
to be covered by the GNU General Public License. Your use of that
|
||||
executable is in no way restricted on account of linking the HRL
|
||||
and/or HVM code into it.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
their web site at http://www.gnu.org/).
|
||||
|
||||
You can contact me at: dezac@corevia.com
|
||||
*/
|
||||
|
||||
#include <extend.h>
|
||||
|
||||
@@ -1,5 +1,34 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
Harbour Project source code
|
||||
|
||||
Copyright(C) 1999 by Jose Lalin.
|
||||
http://www.Harbour-Project.org/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
The exception is that if you link the Harbour Runtime Library (HRL)
|
||||
and/or the Harbour Virtual Machine (HVM) with other files to produce
|
||||
an executable, this does not by itself cause the resulting executable
|
||||
to be covered by the GNU General Public License. Your use of that
|
||||
executable is in no way restricted on account of linking the HRL
|
||||
and/or HVM code into it.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
their web site at http://www.gnu.org/).
|
||||
|
||||
You can contact me at: dezac@corevia.com
|
||||
*/
|
||||
|
||||
#include <extend.h>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "natmsg/msgbas.c"
|
||||
#elif defined(HARBOUR_LANGUAGE_DUT)
|
||||
#include "natmsg/msgdut.c"
|
||||
#elif defined(HARBOUR_LANGUAGE_EO)
|
||||
#include "natmsg/msgeo.c"
|
||||
#elif defined(HARBOUR_LANGUAGE_GAL)
|
||||
#include "natmsg/msggal.c"
|
||||
#elif defined(HARBOUR_LANGUAGE_GER)
|
||||
|
||||
@@ -1,6 +1,34 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
Harbour Project source code
|
||||
|
||||
Copyright(C) 1999 by Jose Lalin.
|
||||
http://www.Harbour-Project.org/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
The exception is that if you link the Harbour Runtime Library (HRL)
|
||||
and/or the Harbour Virtual Machine (HVM) with other files to produce
|
||||
an executable, this does not by itself cause the resulting executable
|
||||
to be covered by the GNU General Public License. Your use of that
|
||||
executable is in no way restricted on account of linking the HRL
|
||||
and/or HVM code into it.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
their web site at http://www.gnu.org/).
|
||||
|
||||
You can contact me at: dezac@corevia.com
|
||||
*/
|
||||
|
||||
#include <extend.h>
|
||||
#include <init.h>
|
||||
|
||||
15
harbour/source/rtl/natmsg/msgeo.c
Normal file
15
harbour/source/rtl/natmsg/msgeo.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Language support unit for Esperanto
|
||||
* Codepage: N/A
|
||||
*/
|
||||
|
||||
char *hb_monthsname[ 12 ] = {
|
||||
"Jaunaro", "Februaro", "Marto",
|
||||
"Aprilo", "Majo", "Junio", "Julio",
|
||||
"A–gusto", "Septembro", "Oktobro",
|
||||
"Novembro", "Decembro" };
|
||||
|
||||
char *hb_daysname[ 7 ] = {
|
||||
"dimanco", "lundo", "mardo",
|
||||
"merkredo", "jaudo", "vendredo",
|
||||
"sabato" };
|
||||
@@ -76,6 +76,7 @@ extern void Classes__InitSymbols( void );
|
||||
extern void Console__InitSymbols( void );
|
||||
extern void CopyFile__InitSymbols( void );
|
||||
extern void Dates__InitSymbols( void );
|
||||
extern void Dates2__InitSymbols( void );
|
||||
extern void Descend__InitSymbols( void );
|
||||
extern void Dir__InitSymbols( void );
|
||||
extern void Environ__InitSymbols( void );
|
||||
|
||||
@@ -14,6 +14,7 @@ C_SOURCES=\
|
||||
chrcount.c \
|
||||
chrfirst.c \
|
||||
chrtotal.c \
|
||||
dates2.c \
|
||||
datesx.c \
|
||||
debug.c \
|
||||
hb_f.c \
|
||||
|
||||
315
harbour/source/tools/dates2.c
Normal file
315
harbour/source/tools/dates2.c
Normal file
@@ -0,0 +1,315 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
Harbour Project source code
|
||||
|
||||
Copyright(C) 1999 by Jose Lalin.
|
||||
http://www.Harbour-Project.org/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
The exception is that if you link the Harbour Runtime Library (HRL)
|
||||
and/or the Harbour Virtual Machine (HVM) with other files to produce
|
||||
an executable, this does not by itself cause the resulting executable
|
||||
to be covered by the GNU General Public License. Your use of that
|
||||
executable is in no way restricted on account of linking the HRL
|
||||
and/or HVM code into it.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
their web site at http://www.gnu.org/).
|
||||
|
||||
You can contact me at: dezac@corevia.com
|
||||
|
||||
The following functions are Copyright 1999 Jose Lalin <dezac@corevia.com>:
|
||||
hb_isleapyear(), hb_daysinmonth(), hb_doy(), hb_wom(), hb_woy()
|
||||
HB_AMONTHS(), HB_ADAYS(), HB_ISLEAPYEAR(), HB_DAYSINMONTH(),
|
||||
HB_EOM(), HB_BOM(), HB_WOM(), HB_DOY(), HB_WOY(), HB_EOY(), HB_BOY()
|
||||
*/
|
||||
|
||||
#include <extend.h>
|
||||
#include <errorapi.h>
|
||||
#include <init.h>
|
||||
#include <itemapi.h>
|
||||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
|
||||
HARBOUR HB_ADAYS(void);
|
||||
HARBOUR HB_AMONTHS(void);
|
||||
HARBOUR HB_BOM(void);
|
||||
HARBOUR HB_BOY(void);
|
||||
HARBOUR HB_DAYSINMONTH(void);
|
||||
HARBOUR HB_DOY(void);
|
||||
HARBOUR HB_EOM(void);
|
||||
HARBOUR HB_EOY(void);
|
||||
HARBOUR HB_ISLEAPYEAR(void);
|
||||
HARBOUR HB_WOM(void);
|
||||
HARBOUR HB_WOY(void);
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( Dates2__InitSymbols )
|
||||
{ "ADAYS", FS_PUBLIC, HB_ADAYS , 0 },
|
||||
{ "AMONTHS", FS_PUBLIC, HB_AMONTHS , 0 },
|
||||
{ "BOM", FS_PUBLIC, HB_BOM , 0 },
|
||||
{ "BOY", FS_PUBLIC, HB_BOY , 0 },
|
||||
{ "DAYSINMONTH", FS_PUBLIC, HB_DAYSINMONTH , 0 },
|
||||
{ "DOY", FS_PUBLIC, HB_DOY , 0 },
|
||||
{ "EOM", FS_PUBLIC, HB_EOM , 0 },
|
||||
{ "EOY", FS_PUBLIC, HB_EOY , 0 },
|
||||
{ "ISLEAPYEAR", FS_PUBLIC, HB_ISLEAPYEAR , 0 },
|
||||
{ "WOM", FS_PUBLIC, HB_WOM , 0 },
|
||||
{ "WOY", FS_PUBLIC, HB_WOY , 0 }
|
||||
HB_INIT_SYMBOLS_END( Dates2__InitSymbols )
|
||||
#if ! defined(__GNUC__)
|
||||
#pragma startup Dates2__InitSymbols
|
||||
#endif
|
||||
|
||||
|
||||
/* In dates.c module */
|
||||
void hb_dateDecode( long julian, long * plDay, long * plMonth, long * plYear );
|
||||
long hb_dow( long d, long m, long y );
|
||||
|
||||
/* In msgxxx.c modules */
|
||||
extern char *hb_monthsname[];
|
||||
extern char *hb_daysname[];
|
||||
|
||||
static int hb__daysinmonth[ 12 ] =
|
||||
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
|
||||
int hb_isleapyear( long lYear )
|
||||
{
|
||||
return (( lYear % 4 == 0 && lYear % 100 != 0 ) || lYear % 400 == 0 )?1:0;
|
||||
}
|
||||
|
||||
long hb_daysinmonth( long lMonth, long lYear )
|
||||
{
|
||||
int i = hb_isleapyear( lYear );
|
||||
|
||||
if( lMonth > 0 && lMonth < 13 )
|
||||
return hb__daysinmonth[ lMonth-1 ] + ((i&&lMonth == 2)?1:0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
long hb_doy( long lDay, long lMonth, long lYear )
|
||||
{
|
||||
int i;
|
||||
int iDoy = 0;
|
||||
|
||||
for( i = 1; i < lMonth; i++ )
|
||||
iDoy += hb_daysinmonth( i, lYear );
|
||||
iDoy += lDay;
|
||||
|
||||
return iDoy;
|
||||
}
|
||||
|
||||
long hb_wom( long lDay, long lMonth, long lYear )
|
||||
{
|
||||
int iWom = lDay + hb_dow( 1, lMonth, lYear) - 1;
|
||||
|
||||
if( iWom > 0 )
|
||||
return ( iWom - hb_dow( lDay, lMonth, lYear ) ) / 7 + 1 ;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
long hb_woy( long lDay, long lMonth, long lYear, int iIso )
|
||||
{
|
||||
int iWeek, n;
|
||||
|
||||
lDay = hb_doy( lDay, lMonth, lYear );
|
||||
n = ( ( ( 1 - (iIso?1:0) ) % 7 ) ) - 1;
|
||||
lDay += (n>0)?1:0;
|
||||
iWeek = lDay / 7;
|
||||
if( iIso )
|
||||
iWeek += (n<4)?1:0;
|
||||
else
|
||||
++iWeek;
|
||||
|
||||
return iWeek;
|
||||
}
|
||||
|
||||
HARBOUR HB_AMONTHS( void )
|
||||
{
|
||||
PHB_ITEM pReturn = hb_itemArrayNew( 12 ); /* Create array */
|
||||
PHB_ITEM pString;
|
||||
int i;
|
||||
|
||||
for( i = 0; i < 12; i++ )
|
||||
{
|
||||
pString = hb_itemNew( NULL );
|
||||
hb_itemPutC( pString, hb_monthsname[ i ] );
|
||||
hb_itemArrayPut( pReturn, i+1, pString );
|
||||
hb_itemRelease ( pString );
|
||||
}
|
||||
hb_itemReturn ( pReturn );
|
||||
hb_itemRelease( pReturn );
|
||||
}
|
||||
|
||||
HARBOUR HB_ADAYS( void )
|
||||
{
|
||||
PHB_ITEM pReturn = hb_itemArrayNew( 7 ); /* Create array */
|
||||
PHB_ITEM pString;
|
||||
int i;
|
||||
|
||||
for( i = 0; i < 7; i++ )
|
||||
{
|
||||
pString = hb_itemNew( NULL );
|
||||
hb_itemPutC( pString, hb_daysname[ i ] );
|
||||
hb_itemArrayPut( pReturn, i+1, pString );
|
||||
hb_itemRelease ( pString );
|
||||
}
|
||||
hb_itemReturn ( pReturn );
|
||||
hb_itemRelease( pReturn );
|
||||
}
|
||||
|
||||
HARBOUR HB_ISLEAPYEAR( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
hb_retl( hb_isleapyear( lYear ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_errorRT_BASE(EG_ARG, 9999, "Argument error", "ISLEAPYEAR");
|
||||
}
|
||||
}
|
||||
|
||||
HARBOUR HB_DAYSINMONTH( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
hb_retni( hb_daysinmonth( lMonth, lYear ) );
|
||||
}
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
HARBOUR HB_EOM( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
char szDateFormat[ 9 ];
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
lDay = hb_daysinmonth( lMonth, lYear );
|
||||
sprintf( szDateFormat, "%04i%02i%02i", (int) lYear, (int) lMonth, (int) lDay );
|
||||
hb_retds( szDateFormat );
|
||||
}
|
||||
else
|
||||
hb_retds( "" );
|
||||
}
|
||||
|
||||
HARBOUR HB_BOM( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
char szDateFormat[ 9 ];
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
sprintf( szDateFormat, "%04i%02i%02i", (int) lYear, (int) lMonth, 1 );
|
||||
hb_retds( szDateFormat );
|
||||
}
|
||||
else
|
||||
hb_retds( "" );
|
||||
}
|
||||
|
||||
HARBOUR HB_WOM( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
hb_retni( hb_wom( lDay, lMonth, lYear ) );
|
||||
}
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
HARBOUR HB_DOY( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
hb_retni( hb_doy( lDay, lMonth, lYear ) );
|
||||
}
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
HARBOUR HB_WOY( void )
|
||||
// Return the nWeek of the year (1 - 52, 0 - 52 if ISO)
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
int iIso = 1;
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
PHB_ITEM pIso = hb_param( 2, IT_LOGICAL );
|
||||
if( pIso )
|
||||
iIso = pIso->item.asLogical.value;
|
||||
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
hb_retni( hb_woy( lDay, lMonth, lYear, iIso ) );
|
||||
}
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
HARBOUR HB_EOY( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
char szDateFormat[ 9 ];
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
sprintf( szDateFormat, "%04i%02i%02i", (int) lYear, 12, 31 );
|
||||
hb_retds( szDateFormat );
|
||||
}
|
||||
else
|
||||
hb_retds( "" );
|
||||
}
|
||||
|
||||
HARBOUR HB_BOY( void )
|
||||
{
|
||||
PHB_ITEM pDate = hb_param( 1, IT_DATE );
|
||||
long lDay, lMonth, lYear;
|
||||
char szDateFormat[ 9 ];
|
||||
|
||||
if( pDate )
|
||||
{
|
||||
hb_dateDecode( pDate->item.asDate.value, &lDay, &lMonth, &lYear );
|
||||
sprintf( szDateFormat, "%04i%02i%02i", (int) lYear, 1, 1 );
|
||||
hb_retds( szDateFormat );
|
||||
}
|
||||
else
|
||||
hb_retds( "" );
|
||||
}
|
||||
@@ -15,6 +15,7 @@ extern void Classes__InitSymbols( void );
|
||||
extern void Console__InitSymbols( void );
|
||||
extern void CopyFile__InitSymbols( void );
|
||||
extern void Dates__InitSymbols( void );
|
||||
extern void Dates2__InitSymbols( void );
|
||||
extern void Descend__InitSymbols( void );
|
||||
extern void Dir__InitSymbols( void );
|
||||
extern void Environ__InitSymbols( void );
|
||||
|
||||
32
harbour/tests/working/dates4.prg
Normal file
32
harbour/tests/working/dates4.prg
Normal file
@@ -0,0 +1,32 @@
|
||||
// Testing Harbour dates management.
|
||||
#include "set.ch"
|
||||
|
||||
function main()
|
||||
|
||||
LOCAL i
|
||||
LOCAL dDate := date()
|
||||
|
||||
set( _SET_DATEFORMAT, "dd/mm/yyyy" )
|
||||
|
||||
for i := 7 to 49 step 7
|
||||
CheckDate( dDate )
|
||||
dDate += i
|
||||
next
|
||||
|
||||
return nil
|
||||
|
||||
function CheckDate( dDate )
|
||||
|
||||
OutStd( "Testing date:", dDate , chr( 10 ) )
|
||||
OutStd( "Days in month..:", daysinmonth( dDate ), chr( 10 ) )
|
||||
OutStd( "Day of year....:", doy( dDate ), chr( 10 ) )
|
||||
OutStd( "Begin of month.:", bom( dDate ), chr( 10 ) )
|
||||
OutStd( "End of month...:", eom( dDate ), chr( 10 ) )
|
||||
OutStd( "Week of month..:", wom( dDate ), chr( 10 ) )
|
||||
OutStd( "Week of year...:", woy( dDate ), chr( 10 ) )
|
||||
OutStd( "Begin of year..:", boy( dDate ), chr( 10 ) )
|
||||
OutStd( "End of year....:", eoy( dDate ), chr( 10 ) )
|
||||
OutStd( chr( 13 ), chr( 13 ) )
|
||||
__Accept( "Press ENTER to continue..." )
|
||||
|
||||
return nil
|
||||
2
harbour/tests/working/run_all.bat
Normal file
2
harbour/tests/working/run_all.bat
Normal file
@@ -0,0 +1,2 @@
|
||||
runner test_all.hrb hrb
|
||||
call testall.bat
|
||||
Reference in New Issue
Block a user