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 permet d'afficher des données complètes sur les taxes en QuickBASIC :

  1. DECLARE FUNCTION Empattement$ (Chaine AS STRING, Espace!)
  2.      
  3. DIM Compute(12) AS STRING
  4. DIM TaxName1(12) AS STRING
  5. DIM TaxRate1(12) AS DOUBLE
  6. DIM TaxName2(12) AS STRING
  7. DIM TaxRate2(12) AS DOUBLE
  8. DIM RegionMID(12) AS STRING
  9. DIM RegionNameEN(12) AS STRING
  10. DIM RegionNameFR(12) AS STRING
  11. Compute(0) = "C"
  12. Compute(1) = "C"
  13. Compute(2) = "C"
  14. Compute(3) = "C"
  15. Compute(4) = "S"
  16. Compute(5) = "C"
  17. Compute(6) = "S"
  18. Compute(7) = "S"
  19. Compute(8) = "S"
  20. Compute(9) = "S"
  21. Compute(10) = "C"
  22. Compute(11) = "S"
  23. Compute(12) = "S"
  24. TaxName1(0) = "TPS"
  25. TaxName1(1) = "TVH"
  26. TaxName1(2) = "TVH"
  27. TaxName1(3) = "TVH"
  28. TaxName1(4) = "TPS"
  29. TaxName1(5) = "TVH"
  30. TaxName1(6) = "TPS"
  31. TaxName1(7) = "TVH"
  32. TaxName1(8) = "TVH"
  33. TaxName1(9) = "TPS"
  34. TaxName1(10) = "TPS"
  35. TaxName1(11) = "TPS"
  36. TaxName1(12) = "TVH"
  37. TaxRate1(0) = 6!
  38. TaxRate1(1) = 14!
  39. TaxRate1(2) = 14!
  40. TaxRate1(3) = 14!
  41. TaxRate1(4) = 6!
  42. TaxRate1(5) = 6!
  43. TaxRate1(6) = 6!
  44. TaxRate1(7) = 6!
  45. TaxRate1(8) = 6!
  46. TaxRate1(9) = 6!
  47. TaxRate1(10) = 6!
  48. TaxRate1(11) = 6!
  49. TaxRate1(12) = 6!
  50. TaxName2(0) = "TVQ"
  51. TaxName2(1) = ""
  52. TaxName2(2) = ""
  53. TaxName2(3) = ""
  54. TaxName2(4) = "TVP"
  55. TaxName2(5) = ""
  56. TaxName2(6) = "TVP"
  57. TaxName2(7) = ""
  58. TaxName2(8) = ""
  59. TaxName2(9) = "TVP"
  60. TaxName2(10) = "TVP"
  61. TaxName2(11) = "TVP"
  62. TaxName2(12) = ""
  63. TaxRate2(0) = 7.5
  64. TaxRate2(1) = 0!
  65. TaxRate2(2) = 0!
  66. TaxRate2(3) = 0!
  67. TaxRate2(4) = 7!
  68. TaxRate2(5) = 0!
  69. TaxRate2(6) = 7!
  70. TaxRate2(7) = 0!
  71. TaxRate2(8) = 0!
  72. TaxRate2(9) = 8!
  73. TaxRate2(10) = 10!
  74. TaxRate2(11) = 7!
  75. TaxRate2(12) = 0!
  76. RegionMID(0) = "QC"
  77. RegionMID(1) = "NS"
  78. RegionMID(2) = "NB"
  79. RegionMID(3) = "NF"
  80. RegionMID(4) = "BC"
  81. RegionMID(5) = "AB"
  82. RegionMID(6) = "MB"
  83. RegionMID(7) = "NT"
  84. RegionMID(8) = "NU"
  85. RegionMID(9) = "ON"
  86. RegionMID(10) = "PE"
  87. RegionMID(11) = "SK"
  88. RegionMID(12) = "YT"
  89. RegionNameEN(0) = "Quebec"
  90. RegionNameEN(1) = "Nova Scotia"
  91. RegionNameEN(2) = "New Brunswick"
  92. RegionNameEN(3) = "Newfoundland"
  93. RegionNameEN(4) = "British Columbia"
  94. RegionNameEN(5) = "Alberta"
  95. RegionNameEN(6) = "Manitoba"
  96. RegionNameEN(7) = "Northwest Territories"
  97. RegionNameEN(8) = "Nunavut"
  98. RegionNameEN(9) = "Ontario"
  99. RegionNameEN(10) = "Prince Edward Island"
  100. RegionNameEN(11) = "Saskatchewan"
  101. RegionNameEN(12) = "Yukon Territory"
  102. RegionNameFR(0) = "Québec"
  103. RegionNameFR(1) = "Nouvelle-Écosse"
  104. RegionNameFR(2) = "Nouveau-Brunswick"
  105. RegionNameFR(3) = "Terre-Neuve/Labrador"
  106. RegionNameFR(4) = "Colombie-Britanique"
  107. RegionNameFR(5) = "Alberta"
  108. RegionNameFR(6) = "Manitoba"
  109. RegionNameFR(7) = "Territoire du Nord Ouest"
  110. RegionNameFR(8) = "Nunavut"
  111. RegionNameFR(9) = "Ontario"
  112. RegionNameFR(10) = "Ile-du-Prince-Édouard"
  113. RegionNameFR(11) = "Saskatchewan"
  114. RegionNameFR(12) = "Territoire du Yukon"
  115. PRINT "Nom de la province/territoire MID Taxe 1 Taxe 2 Taux"
  116. FOR I = LBOUND(Compute) TO UBOUND(Compute)
  117.  PRINT Empattement(RegionNameFR(I), 31);
  118.  PRINT Empattement(RegionMID(I), 5);
  119.  PRINT TaxName1(I); ":"; TaxRate1(I); "%"; " ";
  120.  IF TaxName2(I) = "" THEN
  121.   PRINT SPC(10);
  122.  ELSE
  123.   PRINT Empattement(TaxName2(I) + ":" + STR$(TaxRate2(I)) + "%", 10);
  124.  END IF
  125.  SELECT CASE Compute(I)
  126.    CASE "S" 'Séparé
  127.      PRINT TaxRate1(I) + TaxRate2(I); "%"; " "
  128.     CASE "C" 'Composé
  129.      PRINT TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100); "%"; " "
  130.  END SELECT
  131. NEXT
  132.  
  133. FUNCTION Empattement$ (Chaine AS STRING, Espace)
  134.  Empattement$ = Chaine + SPACE$(Espace - LEN(Chaine$))
  135. END FUNCTION

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 permet de calculer la taxe de vente d'un produit ou service en fonction des provinces ou territoires en QuickBASIC :

  1. DECLARE FUNCTION Empattement$ (Chaine AS STRING, Espace!)
  2.  
  3. DIM Compute(12)  AS STRING
  4. DIM TaxName1(12) AS STRING
  5. DIM TaxRate1(12) AS DOUBLE
  6. DIM TaxName2(12) AS STRING
  7. DIM TaxRate2(12) AS DOUBLE
  8. DIM RegionMID(12) AS STRING
  9. DIM RegionNameEN(12) AS STRING
  10. DIM RegionNameFR(12) AS STRING
  11. DIM I AS INTEGER
  12. Compute(0) = "C"
  13. Compute(1) = "C"
  14. Compute(2) = "C"
  15. Compute(3) = "C"
  16. Compute(4) = "S"
  17. Compute(5) = "C"
  18. Compute(6) = "S"
  19. Compute(7) = "S"
  20. Compute(8) = "S"
  21. Compute(9) = "S"
  22. Compute(10) = "C"
  23. Compute(11) = "S"
  24. Compute(12) = "S"
  25. TaxName1(0) = "TPS"
  26. TaxName1(1) = "TVH"
  27. TaxName1(2) = "TVH"
  28. TaxName1(3) = "TVH"
  29. TaxName1(4) = "TPS"
  30. TaxName1(5) = "TVH"
  31. TaxName1(6) = "TPS"
  32. TaxName1(7) = "TVH"
  33. TaxName1(8) = "TVH"
  34. TaxName1(9) = "TPS"
  35. TaxName1(10) = "TPS"
  36. TaxName1(11) = "TPS"
  37. TaxName1(12) = "TVH"
  38. TaxRate1(0) = 6!
  39. TaxRate1(1) = 14!
  40. TaxRate1(2) = 14!
  41. TaxRate1(3) = 14!
  42. TaxRate1(4) = 6!
  43. TaxRate1(5) = 6!
  44. TaxRate1(6) = 6!
  45. TaxRate1(7) = 6!
  46. TaxRate1(8) = 6!
  47. TaxRate1(9) = 6!
  48. TaxRate1(10) = 6!
  49. TaxRate1(11) = 6!
  50. TaxRate1(12) = 6!
  51. TaxName2(0) = "TVQ"
  52. TaxName2(1) = ""
  53. TaxName2(2) = ""
  54. TaxName2(3) = ""
  55. TaxName2(4) = "TVP"
  56. TaxName2(5) = ""
  57. TaxName2(6) = "TVP"
  58. TaxName2(7) = ""
  59. TaxName2(8) = ""
  60. TaxName2(9) = "TVP"
  61. TaxName2(10) = "TVP"
  62. TaxName2(11) = "TVP"
  63. TaxName2(12) = ""
  64. TaxRate2(0) = 7.5
  65. TaxRate2(1) = 0!
  66. TaxRate2(2) = 0!
  67. TaxRate2(3) = 0!
  68. TaxRate2(4) = 7!
  69. TaxRate2(5) = 0!
  70. TaxRate2(6) = 7!
  71. TaxRate2(7) = 0!
  72. TaxRate2(8) = 0!
  73. TaxRate2(9) = 8!
  74. TaxRate2(10) = 10!
  75. TaxRate2(11) = 7!
  76. TaxRate2(12) = 0!
  77. RegionMID(0) = "QC"
  78. RegionMID(1) = "NS"
  79. RegionMID(2) = "NB"
  80. RegionMID(3) = "NF"
  81. RegionMID(4) = "BC"
  82. RegionMID(5) = "AB"
  83. RegionMID(6) = "MB"
  84. RegionMID(7) = "NT"
  85. RegionMID(8) = "NU"
  86. RegionMID(9) = "ON"
  87. RegionMID(10) = "PE"
  88. RegionMID(11) = "SK"
  89. RegionMID(12) = "YT"
  90. RegionNameEN(0) = "Quebec"
  91. RegionNameEN(1) = "Nova Scotia"
  92. RegionNameEN(2) = "New Brunswick"
  93. RegionNameEN(3) = "Newfoundland"
  94. RegionNameEN(4) = "British Columbia"
  95. RegionNameEN(5) = "Alberta"
  96. RegionNameEN(6) = "Manitoba"
  97. RegionNameEN(7) = "Northwest Territories"
  98. RegionNameEN(8) = "Nunavut"
  99. RegionNameEN(9) = "Ontario"
  100. RegionNameEN(10) = "Prince Edward Island"
  101. RegionNameEN(11) = "Saskatchewan"
  102. RegionNameEN(12) = "Yukon Territory"
  103. RegionNameFR(0) = "Québec"
  104. RegionNameFR(1) = "Nouvelle-Écosse"
  105. RegionNameFR(2) = "Nouveau-Brunswick"
  106. RegionNameFR(3) = "Terre-Neuve/Labrador"
  107. RegionNameFR(4) = "Colombie-Britanique"
  108. RegionNameFR(5) = "Alberta"
  109. RegionNameFR(6) = "Manitoba"
  110. RegionNameFR(7) = "Territoire du Nord Ouest"
  111. RegionNameFR(8) = "Nunavut"
  112. RegionNameFR(9) = "Ontario"
  113. RegionNameFR(10) = "Ile-du-Prince-Édouard"
  114. RegionNameFR(11) = "Saskatchewan"
  115. RegionNameFR(12) = "Territoire du Yukon"
  116.          
  117. PRINT "Nom de la province/territoire Taxe 1 Taxe 2 Taux 1$ 15$ 44,95$ 100$"
  118. FOR I = LBOUND(Compute) TO UBOUND(Compute)
  119.  DIM Tax AS DOUBLE
  120.  Tax = 0
  121.  PRINT Empattement(RegionNameFR(I), 25);
  122.  PRINT TaxName1(I); ":"; TaxRate1(I); "%"; " ";
  123.  IF TaxName2(I) = "" THEN
  124.   PRINT SPC(10);
  125.  ELSE
  126.   PRINT Empattement(TaxName2(I) + ":" + STR$(TaxRate2(I)), 10);
  127.  END IF
  128.  SELECT CASE Compute(I)
  129.   CASE "S" 'Séparé
  130.     Tax = TaxRate1(I) + TaxRate2(I)
  131.   CASE "C" 'Composé
  132.     Tax = TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100)
  133.  END SELECT
  134.  PRINT USING "##.##% "; Tax;
  135.  PRINT USING "#.##$ "; (1 * (1 + (Tax / 100)));
  136.  PRINT USING "##.##$ "; (15 * (1 + (Tax / 100)));
  137.  PRINT USING "##.##$ "; (44.95 * (1 + (Tax / 100)));
  138.  PRINT USING "###.##$ "; (100 * (1 + (Tax / 100)))
  139. NEXT
  140.  
  141. FUNCTION Empattement$ (Chaine AS STRING, Espace)
  142.  Empattement$ = Chaine + SPACE$(Espace - LEN(Chaine$))
  143. END FUNCTION

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 : Mercredi, le 14 septembre 2016