2016-04-27 6 views
1

ユーザーは誕生日を入力しましたが、この日付(私はUserBDと呼ばれています)が2倍の日付(Date1 & Date2)であるかどうかを調べようとしています。ユーザーが日付を入力したかどうかをIFステートメント内の2つの日付の間で確認しますか? C#

これは、私が誕生日の月と日に基づいてユーザーの星印を計算できるようにするためです。

は、これまでのところ、私は次の操作を実行しようとしましたが、それは際限なく上向きに実行されていない日として明確に間違っている、彼らは月の終了時にリセット:

DateTime AquariusStart = new DateTime(1900, 01, 20); 
DateTime AquariusEnd = new DateTime(1900, 02, 18); 

if (userBD.Month >= AquariusStart.Month && 
    userBD.Month <= AquariusEnd.Month && 
    userBD.Day >= AquariusStart.Day && 
    userBD.Day <= AcquarisStart.Day) 
{ 
    Console.WriteLine("Your Star Sign is Aquarius!"); 
} 

感謝を事前に! :)

+0

は、あなただけの ''チェックしてもらえますか? – Kidiskidvogingogin

+0

もちろん、DateTimeの年を誕生日と衝突させない方法を教えてもらえますか? (I.E userBD.Y IFが2000の場合、datetimeは2000年以内に検索するか、または年をすべて無視する)。 – CaffeineFueledWebDev

+0

あなたはあなたの誕生日と同じ年に開始/終了をする必要があります。好きなように比較することができます。 – BugFinder

答えて

1

あなたはdatetimesを比較することができます。だから、このようにそれを単に行うことができます。このような

var birthDay = new DateTime(1900, userBirthDay.Month, userBirthDay.Day); 
if(aquariusStart <= birthDay && birthDay < aquariusEnd) 
{ 
    //Do something. 
} 
+0

ユーザの誕生日の年が何であれ、DateTimeの同期の年をどのようにするのですか? – CaffeineFueledWebDev

+0

同じ年を使用するように編集しました。 DateTimesは不変であるため、新しいDateTimeを作成する必要があります。 – Carra

+0

それはそれを解決した、ありがとう:) – CaffeineFueledWebDev

0

何かが行います。もし(userBD> = AquariusStart && userBD <= AquariusEnd)

DateTime AquariusStart = new DateTime(DateTime.Now.Year, 01, 20); 
DateTime AquariusEnd = new DateTime(DateTime.Now.Year, 02, 18); 

DateTime UserBd = new DateTime(DateTime.Now.Year, 02, 19); 

if (DateTime.Compare(AquariusStart, UserBd) < 0 && 
    DateTime.Compare(AquariusEnd, UserBd) >= 0) 
{ 
    Console.WriteLine("Your Star Sign is Aquarius!"); 
} 
+0

私はいつもDateTime.Nowを使用することを嫌う。開始が2016 23:59:59に設定され、userbdが2017 00:00:00に設定されていると失敗することがあります。 – Carra

+0

@Carraはい、あなたは正しいですが、それは非常に限界的なケースです。とにかく、これは '' DateTime.Compare''を表示するだけでした。 – Pikoh

関連する問題