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

Đề tài: Làm thế nào để xác định được thứ trong tuần?

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

    Mặc định Làm thế nào để xác định được thứ trong tuần?

    Em làm phần mềm chạy được rồi nhưng mà sai kết quả. Ví dụ như: đ1áng lẽ ra thứ 2 nhưng nó ra thứ 7??? Các anh xem em sai ở đâu
    Code:
    #include<stdio.h>
    #include<conio.h>
    void main(void)
    {
    	int ingay2,ingay1,ingay0,inam,ithang,ingay,ithang1,ithang2,ithang3,ithang4,ithang5,ithang6,ithang7,ithang8,ithang9,ithang10,ithang11,ithang12;
    	ithang1=31;
    	ithang2=28;
    	ithang3=31;
    	ithang4=30;
    	ithang5=31;
    	ithang6=30;
    	ithang7=31;
    	ithang8=31;
    	ithang9=30;
    	ithang10=31;
    	ithang11=30;
    	ithang12=31;
    	printf("Nhap nam:");
    	scanf("%d",&inam);
    	if(inam%4==0)
    	{
    		ithang2=29;
    	}
    	printf("Nhap thang:");
    	scanf("%d",&ithang);
    	printf("Nhap ngay:");
    	scanf("%d",&ingay);
    	switch(ithang)
    	{
    		case 1:ingay0=ithang1;
    		case 2:ingay0=ithang1+ithang2;
    		case 3:ingay0=ithang1+ithang2+ithang3;
    		case 4:ingay0=ithang1+ithang2+ithang3+ithang4;
    		case 5:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5;
    		case 6:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6;
    		case 7:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7;
    		case 8:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7+ithang8;
    		case 9:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7+ithang8+ithang9;
    		case 10:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7+ithang8+ithang9+ithang10;
    		case 11:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7+ithang8+ithang9+ithang10+ithang11;
    		case 12:ingay0=ithang1+ithang2+ithang3+ithang4+ithang5+ithang6+ithang7+ithang8+ithang9+ithang10+ithang11+ithang12;
    		ingay1=inam*365;
    		ingay2=ingay+ingay0+ingay1;
    		if(ingay2%7==0)
    		printf("Thu hai.\n");
    		else if(ingay2%7==1)
    		printf("Thu ba.\n");
    		else if(ingay2%7==2)
    		printf("Thu tu.\n");
    		else if(ingay2%7==3)
    		printf("Thu nam.\n");
    		else if(ingay2%7==4)
    		printf("Thu sau.\n");
    		else if(ingay2%7==5)
    		printf("Thu bay.\n");
    		else if(ingay2%7==6)
    		printf("Chu nhat.\n");
    		break;
    		default:
    		printf("Ban da nhap sai thang.\n");
    	}
    	
    	getch();
    }

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

    Thử cái code này xem bạn. Và đừng hỏi mình về thuật toán...

    C Code:
    1. #include  <stdio.h>
    2. #include  <conio.h>
    3. #include  <iostream.h>
    4. #include  <math.h>
    5. int Thu (int ngay, int thang, int nam)  {
    6.     if(thang < 3)   {
    7.         thang = thang + 12;
    8.         nam = nam - 1;
    9.     }
    10.     return (abs( ngay + 2*thang + 3*(thang + 1)/5 + nam + nam / 4) % 7 );
    11. }
    12. void Print(int thu)  {
    13.     switch(thu)  {
    14.     case 1:
    15.         printf("Thu hai");  break;
    16.     case 2:
    17.         printf("Thu ba");  break;
    18.     case 3:
    19.         printf("Thu tu");  break;
    20.     case 4:
    21.         printf("Thu lam");  break;
    22.     case 5:
    23.         printf("Thu sau");  break;
    24.     case 6:
    25.         printf("Thu bay");  break;
    26.     case 0:
    27.         printf("Chu nhat");  break;
    28.     }
    29. }
    30. int main()  {
    31.     int ngay, thang, nam;
    32.     printf("Nhap vao ngay: ");  scanf("%d", &ngay);
    33.     printf("Nhap vao thang: ");  scanf("%d", &thang);
    34.     printf("Nhap vao nam: ");  scanf("%d", &nam);
    35.     Print(Thu( ngay, thang, nam ));  printf("\n");
    36.     return 0;
    37. }

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    @chuong code C hay C++ vậy, theo mình ko cần hàm thư viện #include <iostream.h> (thừa)
    Công thức tính thứ trong tuần
    Code:
     ngay + 2*thang + 3*(thang + 1)/5 + nam + nam / 4) % 7
    nhớ thôi khỏi chứng minh hay thắc mắc nhé
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

  4. #4
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    hix, chỉ cho nhớ chứ k cho thắc mắc hả

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Tớ cho thêm 1 ít mắm muối hạt tiêu nè
    PHP Code:
    #include  <stdio.h>
    #include  <conio.h>
    charThu(int ngayint thangint nam)  
    {
        
    char *xau="Chu nhat\0Thu hai \0Thu ba  \0Thu tu  \0Thu nam \0Thu sau \0Thu bay",i=thang<3;
        return 
    xau+( ngay + (13*(thang+i*12)+3)/+ (nam-i)*5/4) % *9;
    }
    int main()  
    {
        
    int ngaythangnam;
        
    printf("Nhap vao ngay: ");  scanf("%d", &ngay);
        
    printf("Nhap vao thang: ");  scanf("%d", &thang);
        
    printf("Nhap vao nam: ");  scanf("%d", &nam);
        
    printf("%s",Thu(ngay,thang,nam));
        
    getch();
        return 
    0;

    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

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

    Mặc định Làm thế nào để xác định được thứ trong tuần?

    nghệ thuật viết code thì phải học hỏi anh langman rồi
    Code dễ hiểu sửa thành ko ai hiểu...

  7. #7
    Ngày gia nhập
    08 2009
    Bài viết
    5

    Nói thật là em chẳng hiểu các anh làm ! Ý của em là em đang học theo ebook, nó mới chỉ hàm if và đây là bài tập của hàm if nên ko làm theo cách của các anh được. Em thấy cách em làm cũng đúng mà sao ko ai xem giùm em mà toàn đưa cách riêng.

  8. #8
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Thêm tý:


    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int julius_day_from_date(int day, int month, int year)
    5. {
    6.     int a, y, m, jd;
    7.  
    8.     a = (int)((double)(14 - month) / 12);
    9.     y = year + 4800 - a;
    10.     m = month + 12 * a - 3;
    11.     jd = day + (int)((double)(153 * m + 2)/5) + 365 * y + (int)((double)y/4) - (int)((double)y/100) + (int)((double)y / 400) - 32045;
    12.     if(jd < 2299161)
    13.         jd = day + (int)((double)(153 * m + 2) / 5) + 365 * y + (int)((double)y / 4) - 32083;
    14.     return jd;
    15. }
    16.  
    17. int main(int argc, char* argv[])
    18. {
    19.     char* week_order[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
    20.     int day = 30;
    21.     int month = 4;
    22.     int year = 2010;
    23.     printf("%d/%d/%d is %s", day, month, year, week_order[julius_day_from_date(day, month, year) % 7]);
    24.     getch();
    25.     return 0;
    26. }
    Đã được chỉnh sửa lần cuối bởi namdq2k : 30-08-2010 lúc 03:21 PM.

  9. #9
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Trích dẫn Nguyên bản được gửi bởi M.C.R Xem bài viết
    Nói thật là em chẳng hiểu các anh làm ! Ý của em là em đang học theo ebook, nó mới chỉ hàm if và đây là bài tập của hàm if nên ko làm theo cách của các anh được. Em thấy cách em làm cũng đúng mà sao ko ai xem giùm em mà toàn đưa cách riêng.
    Cậu qua Topic này: http://forums.congdongcviet.com/showthread.php?t=30329, trong đó có bài viết của Peter và làm theo đúng cách của cậu, hãy tham khảo và sửa theo. Chúc cậu thành công!

  10. #10
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Lội
    Bài viết
    153

    @MRC:Có mấy nhận xét về bài của bạn
    Trong chỗ tính ingay0 theo switch(ithang) mỗi case phải có break.Nếu ko nó sẽ lần lượt thực hiện các case sau.
    Cái công thức timg năm nhuận của bạn chưa đúng
    C++ Code:
    1. if(inam%4==0)
    2.     {
    3.         ithang2=29;
    4.     }
    Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà ko chia hết cho 100
    (1900 ko là năm nhuận)

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

  1. iPhone 5 hứa hẹn thắng lớn trong tuần đầu ra mắt
    Gửi bởi quynhcute trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 08-09-2012, 08:19 PM
  2. Làm sao thấy thứ trong tuần từ ngày hệ thống.
    Gửi bởi sinhvien_ct trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 02-10-2011, 04:51 PM
  3. Thắc mắc về "giao diện khả tuần tự trong C#"
    Gửi bởi _adam_ trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 27-07-2011, 08:10 AM
  4. thắc mắc về bài tập tính thứ trong tuần
    Gửi bởi xuanthuy90 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-02-2009, 09:48 PM
  5. Biểu diễn một số thập phân tuần hoàn dưới dạng phân số?
    Gửi bởi huynguyen trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 13-02-2007, 01:49 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