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 C# (C Sharp) :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace taxcanada
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.               char[] Compute={'C','C','C','C','S','C','S','S','S','S','C','S','S'}; 
  12.               string[] TaxName1={"TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH"}; 
  13.               double[] TaxRate1={6.0000,14.0000,14.0000,14.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000}; 
  14.               string[] TaxName2={"TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP",""}; 
  15.               double[] TaxRate2={7.5000,0.0000,0.0000,0.0000,7.0000,0.0000,7.0000,0.0000,0.0000,8.0000,10.0000,7.0000,0.0000}; 
  16.               string[] RegionMID={"QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT"}; 
  17.               string[] RegionName_EN={"Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory"}; 
  18.               string[] RegionName_FR={"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"}; 
  19.                
  20.               Console.WriteLine("Nom de la province/territoire MID Taxe 1 Taxe 2 Taux"); 
  21.               for(int I=0;I<Compute.Length;I++) { 
  22.                    Console.Write(Empattement(RegionName_FR[I],31)); 
  23.                    Console.Write(Empattement(RegionMID[I],5)); 
  24.                    Console.Write(TaxName1[I] + ":" + TaxRate1[I] + "%" + "\t"); 
  25.                    if(TaxName2[I]=="") { 
  26.                       Console.Write(Empattement("",10)); 
  27.                    } else { 
  28.                          Console.Write(Empattement(TaxName2[I] + ":" + TaxRate2[I],10)); 
  29.                            
  30.                     } 
  31.                    switch(Compute[I]) { 
  32.                         case 'S': //Séparé
  33.                             Console.Write((double)TaxRate1[I] + TaxRate2[I] + "%" + "\t"); 
  34.                              break; 
  35.                         case 'C': //Composé
  36.                             Console.Write((double)TaxRate1[I] + ((TaxRate2[I] * (100 + TaxRate1[I])) / 100) + "%" + "\t"); 
  37.                              break; 
  38.                    }
  39.                    Console.WriteLine(); 
  40.               } 
  41.          } 
  42.           
  43.        static string Empattement(string Chaine,int Espace) { 
  44.             for(int I=0,L=Espace-Chaine.Length;I<L;I++) Chaine+=" "; 
  45.             return Chaine; 
  46.        } 
  47.  
  48.  
  49.     }
  50. }

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 C# (C Sharp) :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace taxexemple
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.               char[] Compute={'C','C','C','C','S','C','S','S','S','S','C','S','S'}; 
  12.               string[] TaxName1={"TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH"}; 
  13.               double[] TaxRate1={6.0000,14.0000,14.0000,14.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000}; 
  14.               string[] TaxName2={"TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP",""}; 
  15.               double[] TaxRate2={7.5000,0.0000,0.0000,0.0000,7.0000,0.0000,7.0000,0.0000,0.0000,8.0000,10.0000,7.0000,0.0000}; 
  16.               string[] RegionMID={"QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT"}; 
  17.               string[] RegionName_EN={"Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory"}; 
  18.               string[] RegionName_FR={"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"};
  19.  
  20.               Console.WriteLine("Nom de la province/territoire Taxe 1 Taxe 2 Taux 1$\t15$\t44,95$\t100$"); 
  21.               for(int I=0;I<Compute.Length;I++) { 
  22.                     double Tax = 0; 
  23.                    Console.Write(Empattement(RegionName_FR[I],31)); 
  24.                    Console.Write(TaxName1[I] + ":" + TaxRate1[I] + "%" + "\t"); 
  25.                    if(TaxName2[I]=="") { 
  26.                       Console.Write(Empattement("",10)); 
  27.                    } else { 
  28.                          Console.Write(Empattement(TaxName2[I] + ":" + TaxRate2[I],10)); 
  29.                            
  30.                     } 
  31.                    switch(Compute[I]) { 
  32.                         case 'S': //Séparé
  33.                                   Tax = TaxRate1[I]+TaxRate2[I]; 
  34.                              break; 
  35.                         case 'C': //Composé
  36.                                   Tax = TaxRate1[I]+((TaxRate2[I]*(100+TaxRate1[I]))/100); 
  37.                              break; 
  38.                    }
  39.                    Console.Write((double)(Tax) + "%" + "\t");
  40.                    Console.Write((double)(1 * (1 + (Tax / 100))) + "$\t");
  41.                    Console.Write((double)(15 * (1 + (Tax / 100))) + "$\t");
  42.                    Console.Write((double)(44.95 * (1 + (Tax / 100))) + "$\t");
  43.                    Console.Write((double)(100 * (1 + (Tax / 100))) + "$\t"); 
  44.                    Console.WriteLine(); 
  45.               } 
  46.          } 
  47.           
  48.        static string Empattement(string Chaine,int Espace) { 
  49.             for(int I=0,L=Espace-Chaine.Length;I<L;I++) Chaine+=" "; 
  50.             return Chaine; 
  51.        } 
  52.  
  53.     }
  54. }

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 16 août 2014