0

TimeSpanフォーマット文字列を動的に設定したい。これは、タイム スパン値が負の形式の文字列である場合、正の値とは異なる必要があることを意味します。TimeSpanフォーマット文字列を設定したいのに!の値がわからないのがポイント。

例: 負のタイムスパンの場合は -03:01:01 、正の値の場合は 003:01:01 が必要です。

コードは

columns.Add(new TimeSpanColumnInfo(col.PropertyName, col.TitlePersian, col.TitleEnglish, "ddd\\:hh\\:mm"));

witch の 3 番目の引数は formatstring です

4

2 に答える 2

2

あなたの質問はまだ明確ではありませんが、というTimeSpanオブジェクトがある場合はt、次のようにして条件付きでフォーマット文字列を選択できます。

string format = t < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm";

t(疑わしい)の値を知る前に形式を本当に指定する必要がある場合は、メソッドのシグネチャを変更して a を受け入れFunc<TimeSpan, string>、次のものを引数として渡すことができます。

o => o < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm"

の詳細情報Func<T, TResult>

于 2014-05-03T11:57:06.927 に答える
0

セクションセパレーターのようなものを探しているようです。

string s = someNumber.ToString("00;(00)");

上記の例では、正の値は 2 桁で出力され、負の値は 2 桁の括弧で囲まれて出力されます。

残念ながら、セクション セパレータはカスタムの数値形式に対してのみ有効です。カスタム タイムスパン形式には、セクション セパレータが含まれていません。

于 2014-05-04T20:11:20.223 に答える