[Gambas-user] Using Date datatype for FOR-NEXT

nando nando_f at ...951...
Fri Jun 15 17:09:46 CEST 2007


I put actual dates into an array (sorted) and used FOR EACH to solve my problem.
-Fernando


---------- Original Message -----------
From: ron <ronstk at ...239...>
To: info at ...394..., mailing list for gambas users <gambas-user at lists.sourceforge.net>
Sent: Fri, 15 Jun 2007 15:47:24 +0200
Subject: Re: [Gambas-user] Using Date datatype for FOR-NEXT

> On Friday 15 June 2007 08:51, Rolf-Werner Eilert wrote:
> > Hope this gets through to you, I just read about trouble on the list...
> > 
> > When I have something like
> > 
> > IF mydate = Date(Now) + 1 THEN
> > 
> > this runs well (saying "tomorrow"), but when I have the variables
> > 
> > startdate, enddate, i
> > 
> > all of type Date, I cannot make a FOR NEXT loop with them:
> > 
> > FOR i = startdate to enddate
> > 
> > It results in errors about wrong datatype ("expected numeric, got date 
> > instead" etc.)
> > 
> > Why's that?
> > 
> > Rolf
> 
> For the simple 'FOR i = startval to endval' all the variables are numerical.
> 
> With 'foreach i = startvar to endval' it could be a any datatype but the
> increment must be also of that datatype. 
> So it must changed to 'foreach i = startvar to endval step oneday' in that case.
> However gambas does not support this way of working. :(
> 
> Another could be 'foreach i in mydatatype_array' and here i is of same datatype 
> as the mydatatype_array. Just also not as your requirement with an array.
> 
> In other words, the example you give can't be done that way.
> 
> FOR i = CINT(startdate) TO CINT(enddate) step CINT( (DAY(Now)+1)-DAY(Now) )
> The step value calculate to the integer value need for 1 day.
> 
> The variable i is of course integer here and if you need it as date
> then CDATE(i) should be used. This is the integer variant of your example.
>   note:
>   This is not typed as a working example (or even tested with gambas) but to 
>   explain/show how it could be done (for VB this worked for me in the past)
> 
> A more appropriate way will be something like next.
>   DIM i AS Date
>   i=startdate
>   DO
>     'your code what must be done with i
>     ...
>     i=i+1 ' same as DATE(Now)+1
>   LOOP UNTIL i=enddate ' or enddate+1
> 
> Hope this explains something.
> 
> Ron
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
------- End of Original Message -------





More information about the User mailing list