Conversion de gmt à local et de local à gmt

Contenu du snippet

Le code contient 4 fonctions.

Les deux premières fonctions permettent de calculer le jour de changement de date (celui ci s'effectue en hiver le dernier dimanche du mois d'octobre, et en été le dernier dimanche du mois de mars).

Les deux secondes calculent la nouvelle date avec en entrée la date locale pour la convertir en gmt dans la premiere, et le contraire pour la seconde fonction.

Source / Exemple :


'fonctions de determination de la date de changement d'heure pour l'hiver puis pour l'été
function getchgtdatehiver()
	datestart= Year(now)
	for i=31 to 0 step -1
		datearriv= i & "/10/" & datestart

	if Weekday(datearriv) = 1 then
		getchgtdatehiver=datearriv
		exit for
	end if
	next
end function

function getchgtdateete()
	datestart= Year(now)
	for i=31 to 0 step -1
		datearriv= i & "/03/" & datestart

	if Weekday(datearriv) = 1 then
		getchgtdateete=datearriv
		exit for
	end if
	next
end function

'fonction de convertion de gmt en local
Function convFromGMT(TheDate)
TheDate=Cdate(TheDate)

	if TheDate<cdate(getchgtdateete()) then
		
		convFromGMT=DateAdd("h",1,TheDate)
	elseif TheDate>cdate(getchgtdateete()) and TheDate<cdate(getchgtdatehiver()) then
		
		convFromGMT=DateAdd("h",2,TheDate)
	elseif TheDate>cdate(getchgtdatehiver()) then
		
		convFromGMT=DateAdd("h",1,TheDate)
	end if

end function

'fonction de convertion de local en gmt

Function convToGMT(TheDate)
TheDate=Cdate(TheDate)

	if TheDate<cdate(getchgtdateete()) then
		convToGMT=DateAdd("h",-1,TheDate)
	elseif TheDate>cdate(getchgtdateete()) and TheDate<cdate(getchgtdatehiver()) then
		convToGMT=DateAdd("h",-2,TheDate)
	elseif TheDate>cdate(getchgtdatehiver()) then
		convToGMT=DateAdd("h",-1,TheDate)
	end if

end function

Conclusion :


Le principe : je determine d'abord le chgt de date en hiver et en été en partant du 31 jusqu'à arriver à un dimanche.

Une fois determiné, je rajoute(ou j'enlève) 1 h si je suis en hiver, et 2 h si je suis en été.

Si vous avez des remarques n'hésitez pas.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.