2009-12-10 5 views
6

は、今私がやっている:C#で質問せずにユーザーがメトリックや帝国を好むかどうかを判断する方法はありますか?

bool UseMetricByDefault() { 
    return TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalHours >= 0; 
} 

をこれは、ヨーロッパやアジアから米国を区別するために動作しますが、それは南米を無視します。

良い方法がありますか?

+2

私はロンドンのインターネットカフェにいた場合、私も私を無視します。私は、推測を無効にするオプションを高く評価しています。 –

+0

もちろん、オーバーライドされます。したがって、関数名の "ByDefault"。 –

+0

ええ、[コントロールパネル]の[地域と言語のオプション]には、[カスタマイズ]ボタンの後ろに[測定システム]設定があります。私はそれが.NETにマップされているのだろうか。 –

答えて

20

System.Globalization名前空間にRegionInfoクラスを使用します。

bool isMetric = RegionInfo.CurrentRegion.IsMetric; 

あなたが特定の領域をしたい場合は、以下のいずれかを使用できます。問題の

// from a CultureInfo 
CultureInfo culture = ...; 
RegionInfo r = new RegionInfo(culture.Name); 

// from a string 
RegionInfo r = new RegionInfo("us"); 
+0

恐ろしいです。ありがとう。 –

2

System.Globalization.RegionInforegionInfo.IsMetric)に既に実装されているようです。

あなたはあなたが上で実行しているオペレーティングシステムのCultureを返すことができたCultureInfo classを使用することができます - 通常の形式でen-USen-GBde-DEなど 文化をより頻繁に別応じて、1つの言語からアプリケーションを変換するために使用されていますオペレーティングシステムの文化に基づいています。

これはすべて指定されたローカリゼーションのためのものです。チュートリアルとその記事に関する記事(here)をお読みになることをおすすめします。

+0

RegionInfoクラスを意味していませんか? CultureInfoはこれを言語に関連づけます - RegionInfoには言語、測定値、通貨があります。 –

+0

はい、そうです。とにかく 'CultureInfo'についての情報を残しました.30分ほど休憩を取ることができるようです。 –

3

パートがあってもということですRegionInfoを使用すると、リージョン内の全員が同じシステムを使用するわけではありません。米国では、科学者はしばしばその研究で測定基準を使用します。カナダでは、米国から多くの食品包装を取得しているので、ここではちょっとしたミックスですが、私たちは子供たちにメートル法を教えています(しかし、まだ皇室で考える)。

言われているように、あなたはRegionInfoクラスを使用して公正な推測を行うことができます。

+0

私にとっては公正な推測で十分ですが、チップに感謝します。 –

2

それはRegionInfoクラスのプロパティがあります:「暗闇の中で刺す」については

// en-US, en-GB, de-DE etc. 
string cultureName = CultureInfo.CurrentCulture.Name; 
RegionInfo regionInfo = new RegionInfo(cultureName); 
Console.WriteLine("You prefer to see {0}", regionInfo.IsMetric ? "metric" : "imperial"); 
0

RegionInfo情報は十分です。

しかし、実際には英国のような場所には例外があります。たとえば:関連

  • 何もトラフィックが天候のための温度はメトリックですが、一部の人々は、機器の帝国
  • 測定はメートル法です好む
  • 帝国です...ほとんど

は多くに依存しますあなたがいるジェネレーションと変化するあなたの態度。

実際には両方を提供しても賢明なデフォルトを推測しますが、重要な場合は常にユーザーが設定を上書きできるようにして、これらの変更が記憶されていることを確認してください。

関連する問題