[Qgis-user] Calculate age in years with expressionbuilder
Stefan Giese (WhereGroup)
stefan.giese at wheregroup.com
Tue Dec 19 00:27:56 PST 2017
Hi Reginald,
you should use Year(todate(now()) without the underscore in
to_date...but don't ask me why...
best
stefan
---
Mit freundlichen Grüßen
Stefan Giese
Projektleiter/Consultant
****************************************************
Das WhereGroup-Team wünscht Ihnen ein frohes
Weihnachtsfest und ein glückliches Jahr 2018!
Die Termine der FOSS Academy für 2018 sind online!
Alle Infos unter www.foss-academy.com
****************************************************
WhereGroup GmbH & Co. KG
Schwimmbadstr. 2
79100 Freiburg
Germany
Fon: +49 (0)761 / 519 102 - 61
Fax: +49 (0)761 / 519 102 - 11
stefan.giese at wheregroup.com
www.wheregroup.com
Amtsgericht Bonn, HRA 6788
-------------------------------
Komplementärin:
WhereGroup Verwaltungs GmbH
vertreten durch:
Olaf Knopp, Peter Stamm
-------------------------------
Am 2017-12-19 09:14, schrieb Reginald Carlier:
> Thanks Stefan,
>
> I finally got the age by using this code:
>
> (2017 - year(to_date("GDate")))
>
> Year(to_date(now()) seems to fail as there are missing brackets but I
> can't figure out where.
>
> Regards,
>
> Reginald Carlier
>
> Deskundige GIS
>
> [1]
>
> Gemeente Ingelmunster
> ,
> Oostrozebekestraat 4
> ,
> 8770
>
> Ingelmunster
>
> T
> +32 51 33 74 39 [2]
>
> WWW.INGELMUNSTER.BE [1]
>
> [3]
> [4]
> [5]
> [6]
>
> RAADPLEEG ONZE DISCLAIMER [7]
>
> -----Oorspronkelijk bericht-----
> Van: Stefan Giese (WhereGroup) [mailto:stefan.giese at wheregroup.com]
> Verzonden: dinsdag 19 december 2017 8:58
> Aan: Reginald Carlier
> CC: qgis-user at lists.osgeo.org
> Onderwerp: Re: [Qgis-user] Calculate age in years with
> expressionbuilder
>
> I forgot: and as a workaround you can use:
> year(todate(now()) - year(todate("GDate")) which will produce correct
> ages, or you can use your own python function (expression
> builder->functions->new file):
>
> from qgis.core import *
> from qgis.gui import *
>
> from datetime import datetime
> from dateutil.relativedelta import relativedelta
>
> @qgsfunction(args=2, group='Python')
> def GetAge(values,feature,parent):
> '''
> call this function GetAge("fromdate","todate")
> in years
> '''
> d1 =datetime.strptime(values[0],"%Y-%m-%d")
> d2 =datetime.strptime(values[1],"%Y-%m-%d")
> difference = relativedelta(d2, d1)
> return difference
>
> Am 2017-12-19 07:48, schrieb Stefan Giese (WhereGroup):
>> it seems, that this is a bug, see:
>> https://issues.qgis.org/issues/17681
>>
>> best regards
>> Stefan
>>
>>
>> Am 2017-12-18 15:26, schrieb Reginald:
>>> hello,
>>>
>>> I am calculating the age of persons with the expression builder.
>>> My formulae looks like this:
>>> year(age( to_date(now()) , "GDate" )) The result looks alright for
>>> people who are younger than 68 years.
>>> People who are born in 1949 or before get negative ages and the age
>
>>> goes from -68 to -31 (for someone born in 1913) What is wrong with
> my
>>> formulae?
>>>
>>> Regards,
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from:
>>> http://osgeo-org.1560.x6.nabble.com/QGIS-User-f4125267.html
>>> _______________________________________________
>>> Qgis-user mailing list
>>> Qgis-user at lists.osgeo.org
>>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>
>
> Links:
> ------
> [1] http://www.ingelmunster.be/
> [2] tel:+32%2051%2033%2074%2039
> [3] https://www.facebook.com/Ingelmunster/
> [4] https://www.instagram.com/ingelmunster/
> [5] https://www.pinterest.com/ingelmunster/
> [6] https://twitter.com/ingelmunster
> [7] http://www.ingelmunster.be/email-disclaimer.html
More information about the Qgis-user
mailing list