2つのDateTime値の間の合計日数を求めます。私は、データベースに値13を追加したいと00:00:00私は最初の全体数の例えば13の代わりに、13までのTimeSpanを四捨五入したいTimeSpan値を最初の整数に丸める
TimeSpan totaldays = enddatedata - startdatedata;
:だから私は、減算を実行totaldaysを作成しました。テスト目的のために、私は結果を表示するためにラベルを使用しています:
lbltotaldays.Text = (totaldays.ToString());
最初の数値だけに値を丸める方法はありますか? 13日22時間、例えば、これは時間数を無視します
lbltotaldays.Text = totaldays.Days.ToString();
、そう:あなたはTimeSpan
からフルの日数を取得するために探している場合
protected void insertbutton_Click(object sender, EventArgs e)
{
int? recurrencedata = Convert.ToInt32(ddlRecurrence.Text);
if (recurrencedata == 1)
{
int moduledata = Convert.ToInt32(ddlModule.Text);
DateTime startdatedata = Convert.ToDateTime(txtstartdate.Text);
DateTime enddatedata = Convert.ToDateTime(txtenddate.Text);
int classtypedata = Convert.ToInt32(ddlClassType.Text);
int roomcodedata = Convert.ToInt32(ddlRoomCode.Text);
int starttimedata = Convert.ToInt32(ddlStartClassTime.Text);
int endtimedata = Convert.ToInt32(ddlEndClassTime.Text);
startdatedata = DateTime.Parse(txtstartdate.Text).Date;
enddatedata = DateTime.Parse(txtenddate.Text).Date;
TimeSpan totaldays = enddatedata - startdatedata;
string DefaultConnection = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
SqlConnection myConnection = new SqlConnection(DefaultConnection);
myConnection.Open();
string query = "INSERT INTO Class (ModuleId, ClassTypeId, ClassScheduleStartTimeId, ClassScheduleEndTimeId, RoomCodeId, StartTime, EndTime, RecurrenceId, TotalDayNumber) VALUES (@moduledata, @classtypedata, @starttimedata, @endtimedata, @roomcodedata, @startdatedata, @enddatedata, @recurrencedata, @totaldaynumberdata)";
SqlCommand myCommand = new SqlCommand(query, myConnection);
myCommand.Parameters.AddWithValue("@moduledata", moduledata);
myCommand.Parameters.AddWithValue("@classtypedata", classtypedata);
myCommand.Parameters.AddWithValue("@startdatedata", startdatedata);
myCommand.Parameters.AddWithValue("@enddatedata", enddatedata);
myCommand.Parameters.AddWithValue("@starttimedata", starttimedata);
myCommand.Parameters.AddWithValue("@roomcodedata", roomcodedata);
myCommand.Parameters.AddWithValue("@endtimedata", endtimedata);
myCommand.Parameters.AddWithValue("@recurrencedata", recurrencedata);
myCommand.Parameters.AddWithValue("@totaldaynumberdata", totaldays);
myCommand.ExecuteNonQuery();
myConnection.Close();
SuccessPanel.Visible = true;
lbltotaldays.Text = (totaldays.ToString());
}
}
}
TimeSpan.TotalDaysは全体と小数日間でタイムスパンと二重の値です。これをMath.Roundを使って整数に丸めることができます。 – Joe
私のコードの文脈で例を挙げることができますか?多くの感謝 –
あなたが見ている問題は、あなたが渡しているものとは何の関係もありません。問題のあるフィールドはDBタイプの 'time'であり、14日間のタイムスパンを設定しているのでオーバーフローします; DB時間には、23:59:59までの時間がかかります。 – dasblinkenlight