2012-02-15 9 views
2

有効な結果を得るTask.Durationをどのように変換する必要がありますか? 私はMSDNでこのプロパティについての説明を見つける:msプロジェクトのTask.Durationプロパティ

は、タスクの(分)の期間を取得または設定します。

しかし、正しく動作しません。

結果を60(分)と24(時)で分けた場合、私は間違った結果を得ます。

しかし、私が20と24で割り切れば、それは大丈夫です。そして、なぜ私は理解していない。 私はC#on .Net 3.5とOfficeプライマリInteropアセンブリ(Office 2010の場合はMicrosoft.Office.Interop.MSProject)を使用します。

私は、そのコードを使用:1日にあなたが作業時間の24時間を持っていないので、あなたが期待するように、それが機能しないこと

void SetProperties(MSProject.Task o, string version) 
{ 
       Wbs = o.WBS.ToString(); 
       Name = o.Name.ToString(); 
       StartDate = (System.DateTime) o.Start; 
       FinishDate = (System.DateTime)o.Finish; 
       Iteration = version; 
       duration = (Convert.ToInt16(o.Duration)/10/24).ToString();//after result //divided by 2 I get correct result. Why? 
} 

おかげ

+4

あなたが見ているものが何であるか、間違っていると思われる理由、またはあなたが達成しようとしていることはまったく明確ではありません。 http://tinyurl.com/so-hintsを読んで質問を明確にしてください。 –

答えて

2

理由があります。タスクの所要時間は、開始時刻と終了時刻の間の作業時間の量であり、絶対時間数ではありません。

1日のデフォルトの勤務時間数は8であるため、合計分を480で分けて(60分* 8時間)、日数を取得します。あなたの20 * 24の計算はちょうど480に等しくなるので、あなたは正しい数に遭遇しました。

もちろん、開始日と終了日が終了日と同じになるとは思わないでください。週末のような休業日以外も考慮する必要があるからです。だから、金曜日に始まる3日間の仕事をすることができ、火曜日(5カレンダー日)の終わりまでは終わらないでしょう。

関連する問題