"R.Smith" wrote...
>
> On 2015-07-29 08:58 PM, jose isaias cabrera wrote:
>>
>>
>> There will be entries longer than 1 day, so I will have to address than. 
>> Thanks for the help, but this is great, though.  If I need more help, I 
>> will come back, but I have enough, and I "I think" I can figure out those 
>> longer hours then one or more days.  Thanks.
>>
>> jos?
>
> Well, it seemed fun, and probably easier to calculate in code, but this 
> SQL (SQLite specific) will do what you need for any amount of hours (even 
> hundreds of days) and for any work-day-length and work-start-time in the 
> day:
>
>
> WITH DTBase(HrsToAdd, DayStartsAt, HrsPerDay, HrsNow) AS (SELECT
>
>   5.5,     -- Set this to the hours you wish to add. Any positive value is 
> fine.
>   8.5,     -- Set this to the hours where the work-day starts (8:30am = 
> 8.5, 9:15am = 9.25, etc.)
>   8.5,     -- Set this to how many hours makes up a workday (8:30..17:00 = 
> 8.5 hours)
>
>   (CAST(strftime('%H','now','localtime') AS 
> REAL)+(CAST(strftime('%M','now','localtime') AS REAL)/60)-8.5)-- 8.5 here 
> Same as DaySTart
>
> ), DTFill(HrsToFillToday,HrsRemain) AS (SELECT
>     MAX(HrsPerDay-HrsNow,0),
>     MAX(HrsToAdd-MAX(HrsPerDay-HrsNow,0),0)
>   FROM DTBase
>
> ), DTDays(DaysToAdd,DayHrsToAdd) AS (SELECT
>      CAST((HrsRemain/HrsPerDay) AS INT),
>     (HrsRemain-(CAST((HrsRemain/HrsPerDay) AS INT)*HrsPerDay))
>   FROM DTFill,DTBase
>
> ), DTTime(DaysToAdd,DayHrsToAdd) AS (SELECT
>      DaysToAdd,
>     (DaySTartsAt+(CASE WHEN HrsRemain>0 THEN DayHrsToAdd+24 ELSE 
> HrsNow+HrsToFillToday END))
>   FROM DTBase,DTFill,DTDays
>
> )
> SELECTdatetime( 'now', 'localtime', 'start of day', '+'||DaysToAdd||' 
> days', '+'||DayHrsToAdd||' hours') AS NewTime
>   FROM DTTime;

Well, since you did it for fun, I'll test it and let you know. ;-)  Thanks.

Reply via email to