ฉันมีกล่องคำสั่งผสมที่มีทุกเดือนอยู่ในนั้น
สิ่งที่ฉันต้องรู้คือจำนวนวันในเดือนที่เลือก
var month = cmbMonth.SelectedIndex + 1;
DateTime date = Convert.ToDateTime(month);
ดังนั้นหากผู้ใช้เลือกมกราคมฉันต้องบันทึก 31 เป็นตัวแปร
ฉันมีกล่องคำสั่งผสมที่มีทุกเดือนอยู่ในนั้น
สิ่งที่ฉันต้องรู้คือจำนวนวันในเดือนที่เลือก
var month = cmbMonth.SelectedIndex + 1;
DateTime date = Convert.ToDateTime(month);
ดังนั้นหากผู้ใช้เลือกมกราคมฉันต้องบันทึก 31 เป็นตัวแปร
คำตอบ:
คุณต้องการDateTime.DaysInMonth
:
int days = DateTime.DaysInMonth(year, month);
เห็นได้ชัดว่ามันแตกต่างกันไปในแต่ละปีเนื่องจากบางครั้งเดือนกุมภาพันธ์มี 28 วันและบางครั้งก็ 29 วันคุณสามารถเลือกปีใดปีหนึ่ง (ก้าวกระโดดหรือไม่ก็ได้) หากต้องการ "แก้ไข" เป็นค่าเดียวหรืออย่างอื่น
ใช้System.DateTime.DaysInMonthจากตัวอย่างโค้ด:
const int July = 7;
const int Feb = 2;
// daysInJuly gets 31.
int daysInJuly = System.DateTime.DaysInMonth(2001, July);
// daysInFeb gets 28 because the year 1998 was not a leap year.
int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);
// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);
ในการหาจำนวนวันในหนึ่งเดือนคลาสDateTimeจะมีเมธอด"DaysInMonth (int year, int month)" วิธีนี้จะคืนค่าจำนวนวันทั้งหมดในเดือนที่ระบุ
public int TotalNumberOfDaysInMonth(int year, int month)
{
return DateTime.DaysInMonth(year, month);
}
หรือ
int days = DateTime.DaysInMonth(2018,05);
เอาท์พุท: - 31
int days = DateTime.DaysInMonth(int year,int month);
หรือ
int days=System.Globalization.CultureInfo.CurrentCulture.Calendar.GetDaysInMonth(int year,int month);
คุณต้องผ่านปีและเดือนint
จากนั้นวันในเดือนจะได้รับผลตอบแทนจาก currespoting ปีและเดือน
ฉันคำนวณวันในเดือนจาก datetimepicker ที่เลือกเดือนและปีและฉัน แต่รหัสในข้อความ datetimepicker1 เปลี่ยนเพื่อส่งคืนผลลัพธ์ในกล่องข้อความด้วยรหัสนี้
private void DateTimePicker1_ValueChanged(object sender, EventArgs e)
{
int s = System.DateTime.DaysInMonth(DateTimePicker1.Value.Date.Year, DateTimePicker1.Value.Date.Month);
TextBox1.Text = s.ToString();
}
int month = Convert.ToInt32(ddlMonth.SelectedValue);/*Store month Value From page*/
int year = Convert.ToInt32(txtYear.Value);/*Store Year Value From page*/
int days = System.DateTime.DaysInMonth(year, month); /*this will store no. of days for month, year that we store*/
int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
หากคุณต้องการหาวันในปีนี้และเดือนปัจจุบันสิ่งนี้ดีที่สุด