2007

Jan

01

Räkna med datum

av Rolf
FileMaker har en mängd inbyggda funktioner för att räkna med, t.ex. för att räkna med datum. Internt räknar FileMaker med antal dagar från 1 jan år 1 så för att räkna antal dagar mellan 2 datum behöver du bara använda formeln: slutdatum - startdatum (där slutdatum är senare än startdatum).

Lite svårare blir det om du vill räkna antal månader mellan 2 datum, en sådan formel ser ut så här:
12*( Year(slutdatum) - Year(startdatum) ) + 
( Month(slutdatum) - Month(startdatum) )
Formeln beräknar först antal år mellan de båda datumen och multiplicerar antal år med 12 och lägger sedan till antal månader mellan datumen. Funktionen Month tar inte hänsyn till årtalet.

En vanlig beräkningsfunktion är att räkna ut ålder, använd formeln:
Year(dagensdatum) - Year(Födelsedatum) - 
If(dagensdatum < Date(Month(Födelsedatum);
Day(Födelsedatum);Year(dagensdatum));1;0)
Formeln beräknar först antal år mellan dagens datum och födelsedatum och subtraherar 1 om födelsedagen inte infallit under innevarande år.

Kategorier: ,

Comments (8) -

4/15/2009 5:37:39 PM #

Dennis Andersson

Hej!
Jag har ett problem med datum mm.
Jag vill ha hjälp med denna beräkning:

HämtatDatum+(AntalTab-AntPerDag)=TarSlutDatum

Mitt närminne är dåligt och FileMaker hjälper mig att hålla reda på mycket. Jag har provat och läst en del men jag får det inte att fungera.

Hoppas att Ni kan hjälpa mig.

Vänligen Dennis

Dennis Andersson Sweden

4/15/2009 5:38:01 PM #

Rolf

Hej!

Om du vill beräkna hur långt något räcker, t.ex. hur många dagar en ask tabletter för medicinering räcker, antalet tabletter med antalet som måste tas om dagen. Antag att asken innehåller 24 tabletter och du äter 3 om dagen, då räcker asken 24/3 = 8 dagar.

Beräkningfunktionen kan då vara:
TaSlutDatum = HämtatDatum + (AntalTabletter / AntalPerDag)

Du får då vilket datum tabletterna tar slut.

/Rolf

Rolf Sweden

4/15/2009 5:39:01 PM #

Addo

Hej Rolf

Jag har problem med att omvandla datum från datum fältet till text fältet!

T.ex om datumet är 2008-04-24 i datum fältet men jag vill att det ska kopieras till text fält med formen 20080424 hur blir beräkningen då??
Jag har använt mig av denna bärkningen men utan att lyckas

Right ( Filter ( Datum; "1234567890") ;2 )&"" &Middle ( Filter ( Datum; "1234567890") ;4;2) &"" & Left ( Filter ( Datum; "1234567890") ;2))

Tack för hjälpen

Mvh Addo

Addo

4/15/2009 5:39:15 PM #

Rolf

Hej!

I så fall hade jag använt formeln:

Substitute(GetAsText(Datum);"-";"")

som raderar alla bindestreck.

/Rolf

Rolf

4/2/2011 9:31:49 PM #

Anders

Hej!
Har problem med att flytta fram ett datumfält en månad. Om jag t e x har angett 2011-01-31 och sedan vill öka med en månad. Fungerar ju bra fram till den 28:e varje månad. Men om man vill ange den sista varje månad. Finns det någon lösning för det?

Mvh
Anders

Anders Sweden

4/2/2011 9:43:29 PM #

Rolf Clausen

Hej!

Hur man kan få fram sista datumet i en månad kan du läsa om här:
www.filemakerbloggen.se/.../...atum-i-manaden.aspx

Vill du lägga till en månad till ett datum använder du formeln:
Date(month(datum)+1;day(datum);year(datum))
men, som du säger, så flyttas t.ex 31 april fram till 1 maj med automatik (eftersom 31 april inte finns).

/Rolf

Rolf Clausen Sweden

11/3/2011 9:23:10 AM #

Dennis Andersson

Jag har ett annat problem, har försökt med olika lösningar men får det inte att fungera.
Jag har två fält:
mediciner::skapades  Tidstämpel
mediciner::datum     Datum
Min dag slutar 02:30 så jag vill att datum skall vara en dag tidigare om tiden är mellan 00:00:00 och 02:30:00
Jag har försökt med denna formeln, men det fungerar inte.
If ( Hour ( skapad ) < 2 ; GetAsDate ( skapad ) ; GetAsDate ( skapad )-1 )
Jag har diabetes så jag använder denna i kolhydratsberäkningen, mitt dygn är lite annorlunda eftersom jag lägger mig mellan 01:00 och 03:00

Vänligen Dennis

Dennis Andersson Sweden

11/3/2011 9:37:47 AM #

Dennis Andersson

Hej!

Jag tror att jag löste det:

If ( Hour ( skapad ) = 0 or Hour ( skapad ) = 1 or Hour ( skapad ) = 2 ; GetAsDate ( skapad )-1 ; GetAsDate ( skapad ) )

Tror att det skall vara rätt.

\\dennis

Dennis Andersson Sweden

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading


Arkiv