Anwendung / Praxis

Berechnen von Zeitdifferenzen

Beispiele für das Berechnen von Zeitdifferenzen.
Im F-Script sind die GetInfoScript-Subroutinen implementiert. Sie können das untenstehende F-Script für Demozwecke auch über die OpaccOXAS LiveDocumentation ausführen.
demo-datetime.jpg

F-Script

/headerreport
«/Function.SetParams»
«/Function.CalcDifference»
«/Function.CreateResult» 
/

/Function.SetParams
«X(Start.Date  =«XCNT(freeArg:Start.Date)»)»
«X(Start.Time  =«XCNT(freeArg:Start.Time)»)»
«X(End.Date =«XCNT(freeArg:End.Date)»)»
«X(End.Time =«XCNT(freeArg:End.Time)»)»
/

/Function.CalcDifference
«nSPLIT(.,Start.Time>StartTime)»
«nSPLIT(.,End.Time>EndTime)»
«X(StartTime.Hour =«XARR(StartTime[1])\N»)»
«X(StartTime.Mins =«XARR(StartTime[2])\N»)»
«X(EndTime.Hour   =«XARR(EndTime[1])\N»)»
«X(EndTime.Mins   =«XARR(EndTime[2])\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Umrechnung des Start-Zeitpunkts in Minuten                                  
«X(DateCalc.Start          =«(«(1440 * «X(Start.Date)\N»)\N» + (60*«X(StartTime.Hour)\N»)+«X(StartTime.Mins)\N»)\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Umrechnung des End-Zeitpunkts in Minuten                                    
«X(DateCalc.End            =«(«(1440 * «X(End.Date)\N»)\N» + (60*«X(EndTime.Hour)\N»)+«X(EndTime.Mins)\N»)\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Differenz in Sekunden                                           
«X(DateTime.DiffInSeconds  =«(«(«X(DateCalc.End)\N»-«X(DateCalc.Start)\N»)\N»*60)\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Differenz in Minuten                                            
«X(DateTime.DiffInMinutes  =«(«X(DateCalc.End)\N»-«X(DateCalc.Start)\N»)\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Differenz in Stunden                                            
«X(DateTime.DiffInHours    =«(«(«X(DateCalc.End)\N»-«X(DateCalc.Start)\N»)\N»/60)\N»)»
# --------------------------------------------------------------------------------------------------------------------------------------
# Differenz in Stunden und Minuten                                      
«X(DateTime.DiffComplete   =«(«X(DateTime.DiffInMinutes)»-«(mod(«X(DateTime.DiffInMinutes)»,60))\E»/60)\N»h «(mod(«X(DateTime.DiffInMinutes)»,60))\E»min)»
/

/Function.CreateResult
«XFAS(cell=«XCNT(freeArg:Start.Date)»)»
«XFAS(cell=«XCNT(freeArg:Start.Time)»)»
«XFAS(cell=«XCNT(freeArg:End.Date)»)» 
«XFAS(cell=«XCNT(freeArg:End.Time)»)»
«XFAS(cell=«X(DateTime.DiffInSeconds)»)»
«XFAS(cell=«X(DateTime.DiffInMinutes)»)»
«XFAS(cell=«X(DateTime.DiffInHours)»)»
«XFAS(cell=«X(DateTime.DiffComplete)»)»
/

/GetInfoScriptArg
«XFAS(heads=Argument,StateCd,DataTypeCd,Format,RelationshipCd,RelatedObject)»
«XFAS(heads=RelatedIndex,RelatedConstraint,DefaultValue,EntryMode,WithPrevious,MlsKey)»
«XFAS(cells=Start.Date,1,D,,0,,,,«TODAY\D10»,2,0,Task.StartDay)»
«XFAS(cells=Start.Time,1,N,2.2,0,,,,13.30,2,0,Task.StartTime)»
«XFAS(cells=End.Date,1,D,,0,,,,«(«TODAY\N»+1)\D10»,2,0,Task.EndDay)»
«XFAS(cells=End.Time,1,N,2.2,0,,,,12.59,2,0,Task.EndTime)»
/

/GetInfoScriptCol
«XFAS(heads=Column,DataTypeCd,Format,RelationshipCd,RelatedObject,RelatedIndex,RelatedConstraint,OnDemand,MlsKey)»
# 
«XFAS(cells=Date.StartDate,D,,0,,,,0,Date.StartDate)»
«XFAS(cells=Date.StartTime,A,,0,,,,0,Date.StartTime)»
«XFAS(cells=Date.EndDate,D,,0,,,,0,Date.EndDate)»
«XFAS(cells=Date.EndTime,A,,0,,,,0,Date.EndTime)»
«XFAS(cells=Difference.Seconds,A,50,0,,,,0,Difference.Seconds)»
«XFAS(cells=Difference.Minutes,A,50,0,,,,0,Difference.Minutes)»
«XFAS(cells=Difference.Hours,A,50,0,,,,0,Difference.Hours)»
«XFAS(cells=Difference.Text,A,50,0,,,,0,Difference.Text)»
/