我想要查找兩個DateTime值之間的總天數。所以,我創建了執行減法totaldays:將TimeSpan值舍入爲第一個整數
TimeSpan totaldays = enddatedata - startdatedata;
我想時間跨度四捨五入到第一整數例如13,而不是13:00:00:00我要值13添加到數據庫。出於測試目的,我正在使用標籤來顯示結果:
lbltotaldays.Text = (totaldays.ToString());
如何將值舍入爲僅第一個數字?
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
謝謝你能提供一個與我的代碼上下文的例子嗎?非常感謝 –
您看到的問題與您所傳遞的內容無關:有問題的字段是數據庫類型「time」,並且它會被溢出,因爲您將時間跨度設置爲14天; DB時間可能需要最多23:59:59的時間跨度。 – dasblinkenlight