Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 26 kết quả

Đề tài: Một số lỗi khi khai báo ngày sinh sử dụng kiểu DateTime trên Console

  1. #1
    Ngày gia nhập
    12 2010
    Nơi ở
    Hưng Yên
    Bài viết
    96

    Angry Một số lỗi khi khai báo ngày sinh sử dụng kiểu DateTime trên Console

    Em có khai báo ngày sinh theo kiểu DateTime và có điều kiện để nhập vào như sau :

    Visual C# Code:
    1. DateTime NgaySinh;
    2.  Console.Write("Nhap ngay sinh(mm/dd/yy) :");//theo thứ tự tháng/ngày/năm
    3.         do
    4.             {
    5.                 try
    6.                 {
    7.                     NgaySinh = DateTime.Parse(Console.ReadLine());
    8.                     if ((NgaySinh.Day >= 1 && NgaySinh.Day <= 21) || (NgaySinh.Month >= 1 && NgaySinh.Month <= 12) || (NgaySinh.Year > 1980 && NgaySinh.Year < 3000))
    9.                     {
    10.                         Console.Write("NGAY SINH HOP LE !               ");
    11.                     }
    12.                         break;
    13.  
    14.                 }
    15.                 catch
    16.                
    17.                     {
    18.                         Console.Write("NGAY SINH KHONG DUNG DINH DANG !");
    19.                        
    20.                     }
    21.                
    22.             } while (true);
    Em gặp 1 số lỗi như sau:
    1. Nếu nhập không đúng điều kiện trong if() thì thông báo : NGAY SINH KHONG DUNG DINH DANG ! .Ok
    Nhưng nếu nhập đúng điều kiện trong if() nhưng viết thiếu 1 trong 3 mục ngày ,tháng hoặc năm thì vẫn thông báo :NGAY SINH HOP LE ! ???
    Ví dụ nhập: chỉ có tháng/ngày :12/02
    chỉ có tháng/năm : 12/2010 ==> vẫn thông báo: NGAY SINH HOP LE !
    cho em hỏi do code của em hay do mặc định của kiểu DateTime như vậy ạ ? ,và nếu được thì phải sửa như thế nào ạ ?
    2. Khi hiện ra màn hình thì kết quả có dạng dài như thế này : 11/23/2011 12:00:00 AM
    Có cách nào cắt phần đằng sau đi và chỉ lấy lại kết quả như này : 11/23/2011 thôi ạ ??
    3. Có còn cách nào khi dùng kiểu DateTime này mà khi nhập hoặc hiện được theo thứ tự : ngày/tháng/năm không ạ?
    4. Cám ơn các pro đã hướng dẫn giúp em vấn đề này !
    Đã ai làm đề tài : Thiết kế website bán quần áo cho cửa hàng trên ASP.Net chưa cho mình hỏi thêm nhé!
    Online : maitrungtan_21111992@yahoo.com

  2. #2
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Lỗi ngay chỗ "||" này đó!!

    Thế là bạn chưa hiểu về lệnh and và or rùi!!

    Chỗ đó của bạn nó sẽ chấp nhận 1 trong 3 cụm đó rùi!! tất cả phải là && hết!

    Muốn hiển thì kiểu ngày theo đúng ý bạn thì bạn cho nó Nó format("dd/MM/yyyy") là đc. (câu 2 và 3 lun đó)
    Sống là để cho đi và ...... Nhận lại

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    1. Kêu nó in ra day, month, year xem nó có thực sự hiểu cái nó nhận vào không? Thực sự, bước đầu tiên của test chương trình là thử xem chương trình có nhận được input đúng theo mình nghĩ hay không.
    (hình như giáo trình không có dạy cách test chương trình, một điều thiếu sót đáng tiếc)

    2. Đổi ra string, cắt lấy 10 ký tự đầu. Hoặc dùng mẫu định dạng (string format)

    3. Tôi đã trả lời câu hỏi này cách đây một tuần lễ. Chịu khó tìm một chút

    4. Xin đừng tâng bốc người khác là pro. Tôi làm việc không thích được tâng bốc

  4. #4
    Ngày gia nhập
    12 2010
    Nơi ở
    Hưng Yên
    Bài viết
    96

    Arrow Một số lỗi khi khai báo ngày sinh sử dụng kiểu DateTime trên Console

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Lỗi ngay chỗ "||" này đó!!
    Chỗ đó của bạn nó sẽ chấp nhận 1 trong 3 cụm đó rùi!! tất cả phải là && hết!
    anh ơi em sửa theo anh hướng dẫn nhưng vẫn không được ,vẫn lỗi như ban đầu
    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Muốn hiển thì kiểu ngày theo đúng ý bạn thì bạn cho nó Nó format("dd/MM/yyyy") là đc. (câu 2 và 3 lun đó)
    em chưa hiểu ý anh nói chỗ này
    anh có thể hướng dẫn thêm cho em được không ạ !
    thank anh !
    Đã ai làm đề tài : Thiết kế website bán quần áo cho cửa hàng trên ASP.Net chưa cho mình hỏi thêm nhé!
    Online : maitrungtan_21111992@yahoo.com

  5. #5
    Ngày gia nhập
    02 2011
    Nơi ở
    Bảo Lộc, Vietnam
    Bài viết
    68

    chỗ bạn vẫn sai vì khi bạn nhập tháng, ngày thì năm sẽ lấy năm hiện tại của máy tính, cũng tương tự vậy với trường hợp khác.
    Để kết quả in ra là ngày tháng năm :
    Visual C# Code:
    1.                         Console.WriteLine("Ngay Sinh {0:dd/MM/yyyy}", NgaySinh);
    Đã được chỉnh sửa lần cuối bởi lequ0ch0anglt : 20-12-2011 lúc 06:59 PM.

  6. #6
    Ngày gia nhập
    02 2011
    Nơi ở
    Bảo Lộc, Vietnam
    Bài viết
    68

    Mặc định Một số lỗi khi khai báo ngày sinh sử dụng kiểu DateTime trên Console

    Code của bạn mình tạm sửa lại như sau, có thể còn nhiều cách làm hay và hiệu quả hơn.

    Visual C# Code:
    1.  static void Main()
    2.         {
    3.             DateTime NgaySinh = new DateTime();
    4.             int D;
    5.             int M;
    6.             int Y;
    7.             try
    8.             {
    9.                 do
    10.                 {
    11.                     Console.WriteLine("Nhap ngay sinh: ");
    12.                     D = int.Parse(Console.ReadLine());
    13.                     Console.WriteLine("Nhap thang sinh: ");
    14.                     M = int.Parse(Console.ReadLine());
    15.                     Console.WriteLine("Nhap nam sinh: ");
    16.                     Y = int.Parse(Console.ReadLine());
    17.                     NgaySinh = new DateTime(Y, M, D);
    18.  
    19.                     if ((NgaySinh.Day >= 1 && NgaySinh.Day <= 21) && (NgaySinh.Month >= 1 && NgaySinh.Month <= 12) && (NgaySinh.Year > 1980 && NgaySinh.Year < 3000))
    20.                     {
    21.                         Console.WriteLine("Ngay Sinh {0:dd/MM/yyyy}", NgaySinh);
    22.                         Console.WriteLine("Ngay Sinh hop le");
    23.                     }
    24.                     else
    25.                     {
    26.                         Console.WriteLine("NGAY SINH KHONG HOP LE!");
    27.  
    28.                     }
    29.                     break;
    30.  
    31.                 } while (true);
    32.             }
    33.             catch
    34.             {
    35.                 Console.WriteLine("NGAY SINH KHONG HOP LE!");
    36.             }
    37.             Console.ReadLine();
    38.  
    39.         }

    bạn nên chịu khó tìm kiếm trong diễn đàn và google có rất nhiều cách làm:
    http://dev.meotom.net/2009/10/26/Dat...tterns-228.htm

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Hưng Yên
    Bài viết
    96

    Arrow Một số lỗi khi khai báo ngày sinh sử dụng kiểu DateTime trên Console

    Rất cảm ơn mọi người đã chia sẻ và giúp đỡ !
    Tại em sắp phải nộp đồ án lên không có thời gian tự tìm nên có chỗ nào không hiểu mong mọi người giúp đỡ!
    Thank all !
    Đã ai làm đề tài : Thiết kế website bán quần áo cho cửa hàng trên ASP.Net chưa cho mình hỏi thêm nhé!
    Online : maitrungtan_21111992@yahoo.com

  8. #8
    Ngày gia nhập
    12 2010
    Nơi ở
    Hưng Yên
    Bài viết
    96

    Arrow hỏi thêm về cách nhập ngày sinh

    cảm ơn bạn đã giúp mình !
    có thể cho mình hỏi thêm chút là có cách nào mà nhập các mục ngày,tháng,năm cùng 1 lúc
    chẳng hạn:ngày/tháng/năm :21/11/1992
    xong rồi
    Trích dẫn Nguyên bản được gửi bởi lequ0ch0anglt Xem bài viết
    Console.WriteLine("Ngay Sinh {0:dd/MM/yyyy}", NgaySinh);
    Console.WriteLine("Ngay Sinh hop le");
    nghĩa là không phải nhập 3 mục ngày, tháng, năm riêng biệt như thế này
    Trích dẫn Nguyên bản được gửi bởi lequ0ch0anglt Xem bài viết
    DateTime NgaySinh = new DateTime();
    int D;
    int M;
    int Y;
    Console.WriteLine("Nhap ngay sinh: ");
    D = int.Parse(Console.ReadLine());
    Console.WriteLine("Nhap thang sinh: ");
    M = int.Parse(Console.ReadLine());
    Console.WriteLine("Nhap nam sinh: ");
    Y = int.Parse(Console.ReadLine());
    NgaySinh = new DateTime(Y, M, D);
    không biết có cách đó không nữa nhưng nếu có thì chỉ giúp mình với nhé !
    thank much !
    Đã ai làm đề tài : Thiết kế website bán quần áo cho cửa hàng trên ASP.Net chưa cho mình hỏi thêm nhé!
    Online : maitrungtan_21111992@yahoo.com

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Có đó bạn!!

    Bạn cho người nhập vào là dd/MM/yyyy

    Rùi bạn lấy chuỗi đó chuyển wa kiểu ngày!!
    Visual C# Code:
    1. DateTime Ngaysinh = DateTime.Parse(Chuoi);
    Nếu ko đc thì báo lỗi, còn nếu đc thì vào thực hiện lệnh bênh dưới
    Sống là để cho đi và ...... Nhận lại

  10. #10
    Ngày gia nhập
    12 2010
    Nơi ở
    Hưng Yên
    Bài viết
    96

    Arrow hỏi thêm về cách nhập ngày sinh

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Có đó bạn!!

    Bạn cho người nhập vào là dd/MM/yyyy

    Rùi bạn lấy chuỗi đó chuyển wa kiểu ngày!!
    Visual C# Code:
    1. DateTime Ngaysinh = DateTime.Parse(Chuoi);
    Nếu ko đc thì báo lỗi, còn nếu đc thì vào thực hiện lệnh bênh dưới
    bạn ơi cho mình hỏi là hình như cách của bạn là chuyển ngày sinh từ chuỗi sang DateTime thì phải
    của mình là đã khai báo sẵn ngày sinh có kiểu DateTime rồi mà
    ở đây mình chỉ hỏi thêm là có cách nào mà nhập cùng 1 lúc được 3 mục ngày/tháng/năm nếu nhập được theo thứ tự đó thì càng tốt
    xong rồi mới theo hiện kết quả theo kiểu : dd/MM/yyyy như bạn nói đó !
    Đã ai làm đề tài : Thiết kế website bán quần áo cho cửa hàng trên ASP.Net chưa cho mình hỏi thêm nhé!
    Online : maitrungtan_21111992@yahoo.com

Các đề tài tương tự

  1. Lỗi chuyển ngày mượn phòng từ kiểu string sang kiểu DateTime trên console ??
    Gửi bởi tan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 17-12-2011, 03:10 PM
  2. Trả lời: 5
    Bài viết cuối: 28-11-2011, 05:21 PM
  3. Cách Add() kiểu dữ liệu Datetime vào 1 mảng trên console?
    Gửi bởi tan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 28-11-2011, 04:19 PM
  4. Algorithm sự khác nhau giữa Console.readLine và Console.readKey ; giữa Console.write và console.writeLine
    Gửi bởi trangkizd_91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-10-2011, 05:48 PM
  5. Close console trên C# | Giúp mình về Console Application trên C# với?
    Gửi bởi letheson trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 15-05-2009, 12:28 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn