Ai biết cách lấy tháng năm được chọn từ datetimeinput không giúp mình với code trong C# nha !! Mình tìm mà chỉ toàn thấy lấy ngày tháng năm của ngày hiện tại của hệ thống thui nên mình lập topic này mong mọi người giúp đỡ!!
Cảm ơn nhiều !!
Mình đã lấy được tháng bằng lệnh như sau:
string month;
string dtnhap;
dtnhap = DateTime.Parse(datetimengaynhap.Text).ToString("MM/dd/yyyy");
month = dtnhap.Substring(0, 2);
Mình làm trong sự kiện click của button thì chạy ok nhưng khi đưa vào sự kiện form load thì nó báo lỗi dòng
dtnhap = DateTime.Parse(datetimengaynhap.Text).ToString("MM/dd/yyyy");
là String was not recognized as a valid DateTime.
Ai bik cách sửa sao không giúp mình với!!
Ý bạn cái datetimeinput là cái Month Calendar đấy hả:
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
textBox1.Text = monthCalendar1.SelectionRange.Start.ToShortDateString();
}
[QUOTE=11520210;176019]Ý bạn cái datetimeinput là cái Month Calendar đấy hả:
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
textBox1.Text = monthCalendar1.SelectionRange.Start.ToShortDateString();
}
[/QUOTE]
Không phải cái đó bạn ơi cái này nek
private void dateTimeInput1_Click(object sender, EventArgs e)
{
}
Cái sự kiện khác nhau không ảnh hưởng gì tới việc lấy ra định dạng ngày tháng năm nhé bạn. Cứ làm 1 hàm lấy ngaythangnam riêng rồi dùng đâu chả được.
Đầu tiên bạn convert từ string sang DateTime. Để việc này được chính xác bạn sử dụng control Calendar hoặc trong ASP.NET thì dùng datepicker của jQuery-UI
public string ngaythangnam(string chuoingay){
try{
DateTime tmp = DateTime.Parse(chuoingay);
return tmp.ToShortDateString();
}catch{
return "";
}
Để phương thức DateTime.ToShortDateString() trả về đúng định dạng dd/MM/yyyy như mình hay sử dụng, bạn cần thay đổi culture của ứng dụng, thường ta làm nó trước mỗi khi thread bắt đầu:
const string culture = "vi-VN";
CultureInfo ci = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
Để bổ sung cho việc kiểm tra chuỗi đầu vào chuoingay bạn có thể sử dụng regular expression. Cái này bạn tự tìm hiểu.
…
Ko biết bạn đã thử quá DateTime.Day, DateTime.Month, DateTime.Year chưa :confuse:
[QUOTE=haucanpop6590;175958]Mình đã lấy được tháng bằng lệnh như sau:
Mình làm trong sự kiện click của button thì chạy ok nhưng khi đưa vào sự kiện form load thì nó báo lỗi dòng
dtnhap = DateTime.Parse(datetimengaynhap.Text).ToString("MM/dd/yyyy");
là String was not recognized as a valid DateTime.[/QUOTE]
Liệu datetimengaynhap có phải là TextBox chăng?
Vậy bạn đã tạo giá trị mặc định cho datetimengaynhap chưa?
Nếu chưa thì khi load form, cái datetimengaynhap.Text = “”. Tất nhiên là gọi hàm DateTime.Parse(“”) sẽ gây ra lỗi invalid input string…
Có thể sử dụng TryParse() :shame:
[QUOTE=08520021;176072]
Vậy bạn đã tạo giá trị mặc định cho datetimengaynhap chưa?
Nếu chưa thì khi load form, cái datetimengaynhap.Text = “”. Tất nhiên là gọi hàm DateTime.Parse(“”) sẽ gây ra lỗi invalid input string…[/QUOTE]
Hì đúng như Đỗ Trọng Ân nói rùi!!! Cái datetime của mình nó chưa có giá trị nào nên lúc parse nó bị lỗi !! Đành phải dùng tryparse như Nguyễn Hoàng Đức là tốt nhất. thanks tất cả ![]()