Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi code kiểm tra ngày,tháng,năm hợp lệ ạ !

  1. #1
    Ngày gia nhập
    10 2012
    Bài viết
    47

    Mặc định Lỗi code kiểm tra ngày,tháng,năm hợp lệ ạ !

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace KiemTraNgayThangNam
    {
        class Program
        {
        
            int[] songay ={ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
            static int SoNgayTrongThang(int _thang,int _nam)
            {
                if (_thang == 2)
                {
                    if (_nam % 4 == 0 && _nam % 100 != 0 || _nam % 400 == 0)
                        return 29;
                }
    
                else
                    songay[_thang];
            }
           static bool NgayHopLe(int _ngay, int _thang, int _nam)
            {
              if(_ngay < 0 && _ngay > SoNgayTrongThang(_thang,_nam))
                  return false;
                if(_thang < 0 && _thang > 12 )
                    return false;
                if (_nam < 0 && _nam > 9999)
                    return false;
                return true;
            }
           static void Main(string[] args)
            {
                int ngay;
                int thang;
                int nam;
                Console.Write("Nhap vao ngay : ");
                ngay = int.Parse(Console.ReadLine());
                Console.Write("Nhap vao thang : ");
                thang = int.Parse(Console.ReadLine());
                Console.Write("Nhap vao nam : ");
                nam = int.Parse(Console.ReadLine());
                if(NgayHopLe(ngay,thang,nam)==true)
                    Console.Write("Ngay thang nam nhap vao la hop le");
                else
                    Console.Write("Ngay thang nam nhap vao khong hop le");
            }
        }
    }
    Em đang làm bài tập cơ bản vì em mới đén với C# . Em bị lỗi là :

    Code:
    Error	1	Only assignment, call, increment, decrement, and new object expressions can be used as a statement
    
    Error	2	An object reference is required for the non-static field, method, or property 'KiemTraNgayThangNam.Program.songay'
    Mong các anh chỉ em fix lỗi ạ . Em cãm ơn nhiều !

  2. #2
    Ngày gia nhập
    08 2012
    Bài viết
    574

    Cả hai lỗi này theo mình đều nằm chung 1 dòng:

    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5.  
    6. namespace KiemTraNgayThangNam
    7. {
    8.     class Program
    9.     {
    10.    
    11.         int[] songay ={ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    12.         static int SoNgayTrongThang(int _thang,int _nam)
    13.         {
    14.             if (_thang == 2)
    15.             {
    16.                 if (_nam % 4 == 0 && _nam % 100 != 0 || _nam % 400 == 0)
    17.                     return 29;
    18.             }
    19.  
    20.             else
    21.                 songay[_thang];  // Nó đây
    22.         }
    23.        static bool NgayHopLe(int _ngay, int _thang, int _nam)
    24.         {
    25.           if(_ngay < 0 && _ngay > SoNgayTrongThang(_thang,_nam))
    26.               return false;
    27.             if(_thang < 0 && _thang > 12 )
    28.                 return false;
    29.             if (_nam < 0 && _nam > 9999)
    30.                 return false;
    31.             return true;
    32.         }
    33.        static void Main(string[] args)
    34.         {
    35.             int ngay;
    36.             int thang;
    37.             int nam;
    38.             Console.Write("Nhap vao ngay : ");
    39.             ngay = int.Parse(Console.ReadLine());
    40.             Console.Write("Nhap vao thang : ");
    41.             thang = int.Parse(Console.ReadLine());
    42.             Console.Write("Nhap vao nam : ");
    43.             nam = int.Parse(Console.ReadLine());
    44.             if(NgayHopLe(ngay,thang,nam)==true)
    45.                 Console.Write("Ngay thang nam nhap vao la hop le");
    46.             else
    47.                 Console.Write("Ngay thang nam nhap vao khong hop le");
    48.         }
    49.     }
    50. }

    Code:
    Error	1	Only assignment, call, increment, decrement, and new object expressions can be used as a statement
    Lỗi 1	Chỉ có biểu thức gán, gọi, tăng, giảm và tạo đối tượng mới mới có thể được dùng như là một câu lệnh
    Dòng đó chỉ có songay[_thang];. Có phải là thiếu return không?
    Sửa: thêm return vào.

    Code:
    Error	2	An object reference is required for the non-static field, method, or property 'KiemTraNgayThangNam.Program.songay'
    Lỗi 2	Một đối tượng tham chiếu được yêu cầu cho trường, phương thức hoặc thuộc tính không-tĩnh 'KiemTraNgayThangNam.Program.songay'
    Phương thức static int SoNgayTrongThang(int _thang,int _nam) là phương thức tĩnh, nhưng trường songay lại là trường không tĩnh, nên lỗi.
    Sửa: thêm static vào khai báo của trường.
    Visual C# Code:
    1. static int[] songay ={ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

  3. #3
    Ngày gia nhập
    10 2012
    Bài viết
    47

    Cãm ơn anh nha ! Em fix được rồi . Chúc anh buổi tối vui vẻ

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    146

    Mặc định Chú ý mấy chỗ tô màu đỏ

    Code:
    static int[] songay = { 30, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
           int SoNgayTrongThang(int _thang, int _nam)
            {
                if (_thang == 2)
                {
                    if (_nam % 4 == 0 && _nam % 100 != 0 || _nam % 400 == 0)
                        return 29;
                    else return 28;
                }
    
                else
                   return songay[_thang];
            }
            static bool NgayHopLe(int _ngay, int _thang, int _nam)
            {
                if (_ngay < 0 && _ngay > SoNgayTrongThang(_thang, _nam))
                    return false;
                if (_thang < 0 && _thang > 12)
                    return false;
                if (_nam < 0 && _nam > 9999)
                    return false;
                return true;
            }
            static void Main(string[] args)
            {
                int ngay;
                int thang;
                int nam;
                Console.Write("Nhap vao ngay : ");
                ngay = int.Parse(Console.ReadLine());
                Console.Write("Nhap vao thang : ");
                thang = int.Parse(Console.ReadLine());
                Console.Write("Nhap vao nam : ");
                nam = int.Parse(Console.ReadLine());
                if (NgayHopLe(ngay, thang, nam) == true)
                    Console.Write("Ngay thang nam nhap vao la hop le");
                else
                    Console.Write("Ngay thang nam nhap vao khong hop le");
            }

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

  1. Code Nhập ngày thàng năm in ra ngày đó là thứ mấy, không biết sai chỗ nào ?
    Gửi bởi moitapcode trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 30-11-2012, 01:04 AM
  2. Bài tập C [code C] Giúp đỡ ý tưởng bài toán về ngày tháng năm
    Gửi bởi cuocdoi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 02-06-2012, 07:59 PM
  3. code in lịch 1 tháng trong năm, làm sao để sửa ngày 1 về đúng vị trí?
    Gửi bởi cugaru279 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 17-05-2012, 09:31 PM
  4. cách viết code năm hiện hành trong lập trình C#?
    Gửi bởi thuan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 06-03-2011, 09:30 AM
  5. Cần Code Ngày tháng năm viết bằng Hướng đối tượng c++
    Gửi bởi piclove trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 21-10-2008, 06:19 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