関数内で、2つの日付の違いを秒単位で見つける必要があります。差が30秒を超える場合は、Falseを返します。それ以外の場合は、 Trueを返します。最初の値はデータベースから読み取り、2番目の値は現在のDateTime.Nowです。
これが私が使用しているコードの断片でdr.GetValue(0).ToString()
、データベースに現在の値を保持しながら作業を行います。
if (dr.Read())
{
DateTime nowDate = Convert.ToDateTime(DateTime.Now.ToString("M/dd/yyyy H:mm:ss tt"));
DateTime then = DateTime.ParseExact(dr.GetValue(0).ToString(), "M/dd/yyyy H:mm:ss tt", CultureInfo.InvariantCulture);
TimeSpan diff = nowDate - then;
int timeDifference = diff.Seconds;
if (timeDifference > 30)
{
myConn.Dispose();
return false;
}
else {
myConn.Dispose();
return true;
}
}
上記のコードを実行すると、メッセージエラーが発生します:
string was not recognized as valid DateTime
そして、これがエラーの原因となっている行です:
DateTime then = DateTime.ParseExact(dr.GetValue(0).ToString(), "M/dd/yyyy H:mm:ss tt", CultureInfo.InvariantCulture);
時刻は次の形式でデータベースに保存されます。2013-02-18 14:06:37
しかし、次の行を実行すると(デバッグ目的で):
MessageBox.Show(dr.GetValue(0).ToString());
次の形式で日付を示すメッセージボックスが表示されます。2/18/2013 2:06:37 PM
現在の時刻とdr.GetValue(0).ToString()に保存されている時刻の差を秒単位で見つける方法
どんな助けでも大歓迎です