Section courante

A propos

Section administrative du site

Le Canada est sans doute l'un des pays ou les taxes de vente sur les produits et services sont les plus compliqués à appliquer. Et pour cause : Elle varie d'une province ou territoire à l'autre, elle est parfois composé ou séparé. Voici leur représentation en date du mois septembre de l'année 2006 :

Province/Territoire Taxe 1 Taxe 2 Taux
Alberta TVH: 6% Aucune 6%
Colombie-Britannique TVH: 6% TVP: 7% 13%
Ile-du-Prince-Édouard TPS: 6% TVP: 10% 16.6%
Manitoba TPS: 6% TVP: 7% 13%
Nouveau-Brunswick TVH: 14% Aucune 14%
Nouvelle-Écosse TVH: 14% Aucune 14%
Nunavut TVH: 6% Aucune 6%
Ontario TPS: 6% TVP: 8% 14%
Québec TPS: 6% TVQ: 7.5% 13.95%
Saskatchewan TPS: 6% TVP: 7% 13%
Terre-Neuve/Labrador TVH: 14% Aucune 14%
Territoire du Nord Ouest TVH: 6% Aucune 6%
Territoire du Yukon TVH: 6% Aucune 6%

Tout d'abord, voici un premier exemple permettant d'afficher des données complètes sur les taxes en Visual Basic .NET (VB .NET) :

  1. Module Module1
  2.  
  3.     Sub Main()
  4.         Dim Compute() As Char = {"C", "C", "C", "C", "S", "C", "S", "S", "S", "S", "C", "S", "S"}
  5.         Dim TaxName1() As String = {"TPS", "TVH", "TVH", "TVH", "TPS", "TVH", "TPS", "TVH", "TVH", "TPS", "TPS", "TPS", "TVH"}
  6.         Dim TaxRate1() As Double = {6.0, 14.0, 14.0, 14.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0}
  7.         Dim TaxName2() As String = {"TVQ", "", "", "", "TVP", "", "TVP", "", "", "TVP", "TVP", "TVP", ""}
  8.         Dim TaxRate2() As Double = {7.5, 0.0, 0.0, 0.0, 7.0, 0.0, 7.0, 0.0, 0.0, 8.0, 10.0, 7.0, 0.0}
  9.         Dim RegionMID() As String = {"QC", "NS", "NB", "NF", "BC", "AB", "MB", "NT", "NU", "ON", "PE", "SK", "YT"}
  10.         Dim RegionName_EN() As String = {"Quebec", "Nova Scotia", "New Brunswick", "Newfoundland", "British Columbia", "Alberta", "Manitoba", "Northwest Territories", "Nunavut", "Ontario", "Prince Edward Island", "Saskatchewan", "Yukon Territory"}
  11.         Dim RegionName_FR() As String = {"Québec", "Nouvelle-Écosse", "Nouveau-Brunswick", "Terre-Neuve/Labrador", "Colombie-Britanique", "Alberta", "Manitoba", "Territoire du Nord Ouest", "Nunavut", "Ontario", "Ile-du-Prince-Édouard", "Saskatchewan", "Territoire du Yukon"}
  12.         Dim I As Integer
  13.  
  14.         Console.WriteLine("Nom de la province/territoire MID Taxe 1 Taxe 2 Taux")
  15.         For I = 0 To Compute.Length - 1
  16.             Console.Write(Empattement(RegionName_FR(I), 31))
  17.             Console.Write(Empattement(RegionMID(I), 5))
  18.             Console.Write(TaxName1(I) & ":" & TaxRate1(I) & "%" & " ")
  19.             If TaxName2(I) = "" Then
  20.                 Console.Write(Empattement("", 10))
  21.             Else
  22.                 Console.Write(Empattement(TaxName2(I) & ":" & TaxRate2(I) & "%", 10))
  23.             End If
  24.             Select Case Compute(I)
  25.                 Case "S" 'Séparé
  26.                     Console.Write(TaxRate1(I) + TaxRate2(I) & "%" & " ")
  27.                 Case "C" 'Composé
  28.                     Console.Write(TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100) & "%" & " ")
  29.             End Select
  30.             Console.WriteLine()
  31.         Next
  32.     End Sub
  33.  
  34.     Function Empattement(ByVal Chaine As String, ByVal Espace As Integer) As String
  35.         Dim I As Integer
  36.         Dim L As Integer = Espace - Chaine.Length
  37.         For I = 0 To L - 1
  38.             Chaine &= " "
  39.         Next
  40.         Return Chaine
  41.     End Function
  42.  
  43. End Module

on obtiendra le résultat suivant :

Nom de la province/territoireMIDTaxe 1Taxe 2Taux
QuébecQCTPS:6%TVQ:7.5%13.95%
Nouvelle-ÉcosseNSTVH:14% 14%
Nouveau-BrunswickNBTVH:14% 14%
Terre-Neuve/LabradorNFTVH:14% 14%
Colombie-BritaniqueBCTPS:6%TVP:7%13%
AlbertaABTVH:6% 6%
ManitobaMBTPS:6%TVP:7%13%
Territoire du Nord OuestNTTVH:6% 6%
NunavutNUTVH:6% 6%
OntarioONTPS:6%TVP:8%14%
Ile-du-Prince-ÉdouardPETPS:6%TVP:10%16.6%
SaskatchewanSKTPS:6%TVP:7%13%
Territoire du YukonYTTVH:6% 6%

Ensuite, voici un deuxième exemple permettant de calculer la taxe de vente d'un produit ou service en fonction des provinces ou territoires en Visual Basic .NET (VB .NET) :

  1. Module Module1
  2.  
  3.     Sub Main()
  4.         Dim Compute() As Char = {"C", "C", "C", "C", "S", "C", "S", "S", "S", "S", "C", "S", "S"}
  5.         Dim TaxName1() As String = {"TPS", "TVH", "TVH", "TVH", "TPS", "TVH", "TPS", "TVH", "TVH", "TPS", "TPS", "TPS", "TVH"}
  6.         Dim TaxRate1() As Double = {6.0, 14.0, 14.0, 14.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0}
  7.         Dim TaxName2() As String = {"TVQ", "", "", "", "TVP", "", "TVP", "", "", "TVP", "TVP", "TVP", ""}
  8.         Dim TaxRate2() As Double = {7.5, 0.0, 0.0, 0.0, 7.0, 0.0, 7.0, 0.0, 0.0, 8.0, 10.0, 7.0, 0.0}
  9.         Dim RegionMID() As String = {"QC", "NS", "NB", "NF", "BC", "AB", "MB", "NT", "NU", "ON", "PE", "SK", "YT"}
  10.         Dim RegionName_EN() As String = {"Quebec", "Nova Scotia", "New Brunswick", "Newfoundland", "British Columbia", "Alberta", "Manitoba", "Northwest Territories", "Nunavut", "Ontario", "Prince Edward Island", "Saskatchewan", "Yukon Territory"}
  11.         Dim RegionName_FR() As String = {"Québec", "Nouvelle-Écosse", "Nouveau-Brunswick", "Terre-Neuve/Labrador", "Colombie-Britanique", "Alberta", "Manitoba", "Territoire du Nord Ouest", "Nunavut", "Ontario", "Ile-du-Prince-Édouard", "Saskatchewan", "Territoire du Yukon"}
  12.         Dim I As Integer
  13.  
  14.         Console.WriteLine("Nom de la province/territoire Taxe 1 Taxe 2 Taux 1$ 15$ 44,95$ 100$")
  15.         For I = 0 To Compute.Length - 1
  16.             Dim Tax As Double = 0
  17.             Console.Write(Empattement(RegionName_FR(I), 31))
  18.             Console.Write(TaxName1(I) & ":" & TaxRate1(I) & "%" & " ")
  19.             If TaxName2(I) = "" Then
  20.                 Console.Write(Empattement("", 10))
  21.             Else
  22.                 Console.Write(Empattement(TaxName2(I) & ":" & TaxRate2(I), 10))
  23.             End If
  24.             Select Case Compute(I)
  25.                 Case "S" 'Séparé
  26.                     Tax = TaxRate1(I) + TaxRate2(I)
  27.                 Case "C" 'Composé
  28.                     Tax = TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100)
  29.             End Select
  30.             Console.Write((Tax) & "%" & " ")
  31.             Console.Write((1 * (1 + (Tax / 100))) & "$ ")
  32.             Console.Write((15 * (1 + (Tax / 100))) & "$ ")
  33.             Console.Write((44.95 * (1 + (Tax / 100))) & "$ ")
  34.             Console.Write((100 * (1 + (Tax / 100))) & "$ ")
  35.             Console.WriteLine()
  36.         Next
  37.     End Sub
  38.  
  39.     Function Empattement(ByVal Chaine As String, ByVal Espace As Integer) As String
  40.         Dim I As Integer
  41.         Dim L As Integer = Espace - Chaine.Length
  42.         For I = 0 To L - 1
  43.             Chaine &= " "
  44.         Next
  45.         Return Chaine
  46.     End Function
  47.  
  48. End Module

on obtiendra le résultat suivant :

Nom de la province/territoireTaxe 1Taxe 2Taux1$15$44,95$100$
QuébecTPS:6%TVQ:7.5%13.95%1.1395$17.0925$51.220525$113.95$
Nouvelle-ÉcosseTVH:14% 14%1.14$17.1$51.243$114$
Nouveau-BrunswickTVH:14% 14%1.14$17.1$51.243$114$
Terre-Neuve/LabradorTVH:14% 14%1.14$17.1$51.243$114$
Colombie-BritaniqueTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
AlbertaTVH:6% 6%1.06$15.9$47.647$106$
ManitobaTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
Territoire du Nord OuestTVH:6% 6%1.06$15.9$47.647$106$
NunavutTVH:6% 6%1.06$15.9$47.647$106$
OntarioTPS:6%TVP:8%14%1.14$17.1$51.243$114$
Ile-du-Prince-ÉdouardTPS:6%TVP:10%16.6%1.166$17.49$52.4117$116.6$
SaskatchewanTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
Territoire du YukonTVH:6% 6%1.06$15.9$47.647$106$


Dernière mise à jour : Samedi, le 22 octobre 2016