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

Đề tài: cho em hỏi về bài tập.

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

    Mặc định cho em hỏi về bài tập.

    em mới học lập trình nên chưa có hiểu kĩ lém, anh (chị) nào biết giúp em bài này với.
    nhập vào 2 mốc thời gian dưới dạng là ngày/tháng/năm. sau đó tính số ngày trong 2 mốc đó.

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

    Trích dẫn Nguyên bản được gửi bởi lee yong kyo Xem bài viết
    em mới học lập trình nên chưa có hiểu kĩ lém, anh (chị) nào biết giúp em bài này với.
    nhập vào 2 mốc thời gian dưới dạng là ngày/tháng/năm. sau đó tính số ngày trong 2 mốc đó.
    Ví dụ như đang tính số ngày giữa a/b/c và d/e/f.
    Bạn có thể tính theo cách này.
    1) Từ 1/1/c đến a/b/c có bao nhiêu ngày;
    2) Từ 1/1/f đến d/e/f có bao nhiêu ngày;
    3) Tính f-c;
    4) Tính số năm nhuận từ c đến f;

    Y!M: doxuanthangvn
    Skype: doxuanthangvnn
    Email: doxuanthang@hotmail.com

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

    Code thì tôi cho tham khảo. Còn hỉu hay ko tuy thuộc vào bạn. Ý tưởng thì giống như bạn ở trên nói.

    C++ Code:
    1. struct ngay
    2. {
    3.     int ng;
    4.     int th;
    5.     int nm;
    6. };
    7.  
    8. int ktNhuan(ngay x)
    9. {
    10.     return ((x.nm % 4 == 0 && x.nm % 400 != 0) || (x.nm % 400 == 0));
    11. }
    12.  
    13. int sttTrongNam(ngay x)
    14. {
    15.     int stt = 0;
    16.     int ngaythang[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    17.     if(ktNhuan(x) == 1)
    18.         ngaythang[1] = 29;
    19.     for(int i = 1; i <= x.th - 1; i++)
    20.         stt = stt + ngaythang[i - 1];
    21.     return (stt + x.ng);
    22. }
    23.  
    24. long SoThuTu(ngay x)
    25. {
    26.     long stt = 0;
    27.     int sn = 365;
    28.     for(int i = 1; i <= x.nm - 1; i++)
    29.     {
    30.         if(ktNhuan(x) == 1)
    31.             sn = 366;
    32.         stt = stt + sn;
    33.         sn = 365;
    34.     }
    35.     return (stt + sttTrongNam(x));
    36. }
    37.  
    38. long KhoangCachHaiNgay(ngay x, ngay y)
    39. {
    40.     return (SoThuTu(x) - SoThuTu(y));
    41. }
    Lời khuyên: Lấy tờ giấy ra. Viết ra 2 ngày. và tự đổi từ từ ra số thứ tự của mỗi ngày kể từ 1/1/1. Rồi sẽ hỉu code trên
    Đã được chỉnh sửa lần cuối bởi nndung179 : 10-12-2012 lúc 04:37 PM.

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

    ý tưởng như sau, tính số ngày sẽ bắt đầu từ ngày 1/1/1;
    - tính tổng số ngày trong năm từ năm 1 tới năm cần tính.
    cứ hể năm nhuận thì cộng thêm 1 ngày;
    - tính tổng số ngày trong cùng 1 năm cứ hể năm nhuận thì tháng 2 sẽ là 29
    - cuối cùng cộng tổng số ngày trong 2 hàm trên lại

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