2016-10-16 17 views
0

`` MS AcesssからDateTimeを取得する方法があります。私はクライアントが日付の前に24時間まで彼の予約をキャンセルすることを許可したい。 if else文を使用してこれをコード化する方法はありますか?DateTimeと24時間を比較する

これは私の方法です。 列D = db.date(ID)のような場合はelse文をコーディングする方法

​​

。 DateTime n = Convert.toDateTime(d);あなたはあなたの要件ごととして機能しますが、以下の願う変更することができます
(nは< = 24時間???)であれば{ do.this .... }

+0

シェアコード何を試してみましたか – Mostafiz

+0

ok私は – Mostafiz

答えて

0

この

public static bool canCancel(string date) 
{ 
    DateTime booking = Convert.ToDateTime(date); 
    DateTime ending = booking.AddHours(23).AddMinutes(59).AddSeconds(59); 

    var n = DateTime.Compare(ending, DateTime.Now); 
    if(n == -1) 
    { 
     // within 24 hour from booking 
     // so can not cancel 
     return false; 
    } 
    else 
    { 
     // greater than 24 hour 
     // so can cancel 
     return true; 
    } 


} 

のような方法が、その後

public static string Date(int c) 
    { 
     string a; 
     OleDbConnection myconn = DBConn(); 
     string myQ = "SELECT DateTime FROM Booking WHERE movie_ID=" + c; 
     OleDbCommand myCmd = new OleDbCommand(myQ, myconn); 
     try 
     { 
      myconn.Open(); 

      a = myCmd.ExecuteScalar().ToString(); 

      var can_cancel = canCancel(a); 
      return a; 

     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Exception in DBHandler", ex); 
      return null; 
     } 
     finally 
     { 
      myconn.Close(); 
     } 
    } 
それを呼び出す作ります
+0

をチェックしています。私は予約をキャンセルするクライアントが時間が24時間以上であることを許可したい。 24時間未満の場合、予約を取り消すことはできません。あなたのコードのように見える –

+0

OK、それを逆にして、私は答えを編集しています – Mostafiz

+0

チェックを更新、私はそれを逆にしました – Mostafiz

1

は、あなたのアイデアを与える:

try 
    { 
     myconn.Open(); 
     a = myCmd.ExecuteScalar().ToString(); 
     DateTime DateFromAccess = Convert.ToDateTime(a); 

     TimeSpan difference = DateFromAccess.Subtract(DateTime.Now); 
     if (difference.TotalHours > 24) 
      //Your Code to Cancel Booking 
     else 
      //"Booking can not be cancelled now"; 

     return a; 
    } 

catch(Exception){ 
    //Handle exception 
} 
関連する問題