using System;
using System.Globalization;
using System.Text;
using System.Threading;

namespace CultureInfoTest
{
    class Program
    {
        static void Main(string[] args)
        {
            // pb d'affichage de € en mode console
            // changer l'encodage de la console en UTF16 (Unicode)  
            Console.OutputEncoding = Encoding.Unicode;
            //////////////////////////////
            CultureInfo culture_courante = CultureInfo.CurrentUICulture; // methode statique: retourne culture courante
            Console.WriteLine("culture courante " + culture_courante.DisplayName);
            decimal prix = 12.3M;
            CultureInfo ci_US = new CultureInfo("en-US"); // nvl objet culture USA
            string text_prix_US = prix.ToString("c", ci_US); // formatage en monnaie en utilsant une culture
            Console.Write(ci_US.DisplayName + ":  ");
            Console.WriteLine(text_prix_US);
            CultureInfo ci_Es = new CultureInfo("es-Es", false);//nvl objet culture Espagnole
            string text_prix_Es = string.Format("{0:c}",prix,ci_Es);// variante au .ToString
            Console.Write(ci_Es.DisplayName + ":  ");
            Console.WriteLine(text_prix_Es);
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); // défini pour le thread courant une nvlle culture
            string text_prix = prix.ToString("c");
            Console.Write(Thread.CurrentThread.CurrentCulture + ":  ");
            Console.WriteLine(text_prix);
            Console.ReadKey();
            }
    }
}
