2017-03-12 23 views
0

私は最近、C#についてのコースに参加しました。私は本当に楽しんでいますが、私は日付を書く必要があり、1000日後の日付を返すべきです。私は、DateTime型についての研究の後、ある種のコードを書くが、それは常に私に1000日ではなく1001日後の日付を与える。また、私は最終結果に時間を持ちたくないので、本当に助けが必要です....私の話題がダムであれば謝りたいです...私はちょうどここにアカウントを作って、それは私の最初の投稿です。私たちは、特定のイベントの後、五日目呼び出す何誕生から1000日後

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace _1000DaysAfterBirthV2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string birthDate = Console.ReadLine(); 
      DateTime d = Convert.ToDateTime(birthDate).Date; 
      DateTime.ParseExact(birthDate, "dd-MM-yyyy", null); 
      DateTime birthday = DateTime.Parse(birthDate); 
      DateTime after = birthday.AddDays(1000); 
      Console.WriteLine(after); 
     } 
    } 
} 
+2

'DateTime after = birthday.AddDays(999);'? –

+0

うん、それは働いた私はそのことについては本当に確信していなかったと最終結果から時間を削除する方法について – Stormcho

+0

出産後1日と期待している日は?翌日または同じ日ですか?翌日になると予想される場合は、現在の出力は正しい –

答えて

2

時間を持たない日付の表示は、.ToString()の方法を参照してください。

after.ToString("MM/dd/yyyy"); 

これは解析に似ていますが、MMは月と月の分に似ています。異なる代表部品。出力で必要な部分を選んでください。 ToString()の同様のアプリケーションは、int、decimal、floatなどの数値フィールドにも使用され、先行/後続ゼロ、小数精度などが表示されます。すべてのオブジェクトにはデフォルトの "ToString()"メソッドがあり、あなたがそこまで降りる際に、独自のカスタムクラスに...それを呼び出す

明確化

は、私はそれ以上の「後」のDateTime変数の型をご参照に基づいているとまったく同じです。 ToString()は、特定の形式の文字列を返します。 WriteLine()を呼び出すときに、文字列が必要です。 "after" DateTimeを渡すので、メソッドはそれぞれの.ToString()を呼び出す必要があり、デフォルト出力を意味することがわかります。上記のすべてのサンプルは明示的にWriteLineに日付フィールド "after"を出力するよう指示しますが、SPECIFIC形式を使用します。あなたは他のフォーマットに示す日付を望んでいた場合、あなたは私がすると思う

after.ToString("yyyy-MM-dd") -- year first, then month and day. 
after.ToString("dd-MM-yyyy") -- day first, then month, then year 
after.ToString("MM-yyyy") -- to only show 2-digit month and 4-digit year 
+0

ToString()をどのように使うべきかの例を教えてください。 – Stormcho

+0

@Stormcho、解説を参照してください。 – DRapp

+0

うわー、クイックソリューションマンのおかげで素敵な一日があります:) – Stormcho

2

は、4日後の日付を持っている: は、だからここのコードです。来週の金曜日は、月曜日の後五日目なので、

DateTime friday = monday.AddDays(4); 

同じイベントの後に千日のために行きます。

DateTime after = birthday.AddDays(999); 
+0

さて、ありがとうございました。最終結果から時間を取り除くのはどうでしょうか。 – Stormcho

0
string dateString = Console.ReadLine(); 
     string format= "dd-MM-yyyy"; 
     DateTime result=DateTime.ParseExact(dateString, format, 

CultureInfo.InvariantCulture); 
     CultureInfo provider = CultureInfo.InvariantCulture; 
     DateTime output = Convert.ToDateTime(result).AddDays(999); 
     Console.WriteLine(output.ToString("dd-MM-yyyy")); 

行うことができます。 :)

関連する問題