Chào mn, lại là em đây, cho em hỏi xíu về control này cái, hoặc cho em từ khóa cũng được. Tại sao nó convert được vậy? Không thấy code xử lý. Hay default của VB6?
Hiện em đang làm dự án convert từ VB6 sang VBNet, có gặp 1 cái control về ngày tháng năm của VB6 như sau
TH1: Chỉ có năm/tháng
Nếu nhập giá trị có dạng: “00ab/cd” với ab, cd là các số
-
Nếu cd > 12 hoặc cd < 0 => không convert
-
Nếu 0 <= cd <=12 thì:
-
If ab <= số ngày tối đa của tháng cd thì “00ab/cd” sẽ chuyển thành 2019/cd (dự đoán: lấy năm hiện tại/cd)
else “00ab/cd” => “19ab/cd”
VD:
0031/12 => 2019/12
0032/12 => 1932/12
TH2: Có đầy đủ năm/tháng/ngày
- Nếu nhập data có dạng “00ab/cd/ef” => 20gh/ik/lm.
Trong đó các số gh, ik, lm là các số ab, cd, ef bằng cách sắp xếp các số này để thành định dạng là 1 năm.
Nếu sắp xếp thứ tự ab, cd, ef đều thỏa mãn thì nó sẽ lấy ef là năm, cd, là tháng, ab là ngày. - Không convert được thì nó sẽ giữ nguyên giá trị
Ví dụ:
0012/16/10 => 2010/12/16
0030/11/10 => 2010/11/30
0001/15/03 => 2003/01/15
0000/12/05 => 2000/12/05
Cám ơn mọi người đã đọc!