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

Đề tài: Tìm thứ của một ngày bất kì trên C++?

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

    Mặc định Tìm thứ của một ngày bất kì trên C++?

    Đây là bài làm của em, không biết sai ở đâu nhờ mọi người xem giúp. thuật toán là tính số ngày tính từ ngày 1.1.2009 đến ngày cần tìm. tính cả năm nhuận.

    C++ Code:
    1. C++
    2. #include<iostream>
    3. #include<conio.h>
    4. #include<math.h>
    5. using namespace std;
    6. int main()
    7. {
    8.     int x,y,ngay,thang,nam;
    9.     cout<<"Tinh thu cua mot ngay bat ki.\n"<<"    1-1-2009(T.5)";
    10.     cout<<"\nNgay:";cin>>ngay;
    11.     cout<<"Thang:";cin>>thang;
    12.     cout<<"Nam:";cin>>nam;
    13.     cout<<"Ngay nay la ";
    14.     if ((nam%400==0)||((nam%4==0)&&(nam%100!=0)))
    15.     {
    16.      switch(thang)
    17.      {
    18.                  case 1: {x=ngay - 1;break;}
    19.                  case 2: {x=30 + ngay;break;}
    20.                  case 3: {x=59 + ngay;break;}
    21.                  case 4: {x=90 + ngay;break;}
    22.                  case 5: {x=120 + ngay;break;}
    23.                  case 6: {x=151 + ngay;break;}
    24.                  case 7: {x=181 + ngay;break;}
    25.                  case 8: {x=212 + ngay;break;}
    26.                  case 9: {x=243 + ngay;break;}
    27.                  case 10: {x=272 + ngay;break;}
    28.                  case 11: {x=304 + ngay;break;}
    29.                  case 12: {x=334 + ngay;break;}
    30.      };
    31.     }
    32.     else
    33.     switch(thang)
    34.     {            
    35.                  case 1: {x=ngay - 1;break;}
    36.                  case 2: {x=30 + ngay;break;}
    37.                  case 3: {x=58 + ngay;break;}
    38.                  case 4: {x=89 + ngay;break;}
    39.                  case 5: {x=119 + ngay;break;}
    40.                  case 6: {x=150 + ngay;break;}
    41.                  case 7: {x=180 + ngay;break;}
    42.                  case 8: {x=211 + ngay;break;}
    43.                  case 9: {x=242 + ngay;break;}
    44.                  case 10: {x=272 + ngay;break;}
    45.                  case 11: {x=303 + ngay;break;}
    46.                  case 12: {x=333 + ngay;break;}
    47.     };
    48.     x=365*abs(nam-2009)-x;
    49.     for (nam+1;nam<2009;nam++)
    50.     {
    51.         if ((nam%400==0)||((nam%4==0)&&(nam%100!=0))) x++;
    52.     }
    53.     y=x-(x/7)*7;
    54.     switch(y)
    55.     {
    56.              case 0: {cout<<"thu 5";break;}
    57.              case 1: {cout<<"thu 6";break;}
    58.              case 2: {cout<<"thu 7";break;}
    59.              case 3: {cout<<"chu nhat";break;}
    60.              case 4: {cout<<"thu 2";break;}
    61.              case 5: {cout<<"thu 3";break;}
    62.              case 6: {cout<<"thu 4";break;}
    63.     };
    64.    
    65.     getch();
    66. }
    67. code
    Em cảm ơn.
    Đưa code vào tag
    Đã được chỉnh sửa lần cuối bởi naruto : 09-05-2009 lúc 08:49 AM. Lý do: thiếu code tag

  2. #2
    Ngày gia nhập
    05 2009
    Nơi ở
    Tp Hồ Chí Minh
    Bài viết
    16

    Để xác định thứ 1 ngày t có biết 1 thuật toán sau(quên mất tên - ^_^)
    Ví dụ tìm thứ của ngày 8/5/2009
    A = 2009 - 1
    B =[A/4] --> Lấy phần nguyên của phép chia
    C =[A/100]
    D =[A/400]

    E = A + B - C + D + 31 + 28 + 31 + 30 + 8
    (cái phần 31 + 28 + 31 + 30 + 8 là số ngày kể từ ngày 1/1 của năm đó)

    F = E - [E/7]
    Xét các trường hợp sau:
    F = 0 ---> CN
    F = 1 ---> T2
    F = 2 ---> T3
    F = 3 ---> T4
    F = 4 ---> T5
    F = 5 ---> T6
    F = 6 ---> T7


    .................................................. ...
    Còn code phần tính khoảng cách ngày khi nào rảnh t post cho.

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

  1. Lập trình C++ lỗi khi viết trên dev c, còn trên cfree chạy bình thường
    Gửi bởi truongvantri trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 26-10-2013, 03:34 PM
  2. Trả lời: 30
    Bài viết cuối: 15-02-2012, 07:03 PM
  3. Lập trình Socket trên C++ có thể giao tiếp chương trình Java trên Server được ko các
    Gửi bởi jacobkruse trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 18-11-2010, 11:10 PM
  4. Source code build trên Ubuntu có chạy được Trên Linux Kernel không ?
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 0
    Bài viết cuối: 03-11-2010, 09:22 AM
  5. Lưu dữ liệu để trống trên một cell của datagirdview trên csdl Access như thế nào?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 27-05-2009, 04:21 PM

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