แสดงบทความที่มีป้ายกำกับ ตัวอย่างโค๊ต โปรแกรมหาปีที่มีอธิกวาร(Leap year) หรือ อธิกสุรธิน แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ตัวอย่างโค๊ต โปรแกรมหาปีที่มีอธิกวาร(Leap year) หรือ อธิกสุรธิน แสดงบทความทั้งหมด

วันพุธที่ 24 สิงหาคม พ.ศ. 2554

โค๊ด หาปีอธิกสุรธิน ตัวอย่าง ภาษาซี(c) ตัวอย่างโปรแกรมภาษาซี หาปีที่เป็นอธิกวาร(Leap year) หรือไม่

ตัวอย่างโค๊ต โปรแกรมหาปีที่มีอธิกวาร(Leap year)
หรือ อธิกสุรธิน



ข้อมูลปีตามจันทรคติที่เป็น
0 : ปกติมาส-วาร
1 : อธิกวาร
2 : อธิกมาส

ข้างล่างนี้เป็นข้อมูลตามปฏิทินอยู่ 2 เล่ม ซึ่งเมื่อทานความถูกต้องแล้ว ก็พบว่ามีความถูกต้องเหมือนกันทั้ง 2 เล่ม

|  2400 |  1857 |       0 |
|  2401 |  1858 |       2 |
|  2402 |  1859 |       0 |
|  2403 |  1860 |       1 |
|  2404 |  1861 |       2 |
|  2405 |  1862 |       0 |
|  2406 |  1863 |       2 |
|  2407 |  1864 |       0 |
|  2408 |  1865 |       1 |
|  2409 |  1866 |       2 |
|  2410 |  1867 |       0 |
|  2411 |  1868 |       0 |
|  2412 |  1869 |       2 |
|  2413 |  1870 |       0 |
|  2414 |  1871 |       1 |
|  2415 |  1872 |       2 |
|  2416 |  1873 |       0 |
|  2417 |  1874 |       2 |
|  2418 |  1875 |       0 |
|  2419 |  1876 |       1 |
|  2420 |  1877 |       2 |
|  2421 |  1878 |       0 |
|  2422 |  1879 |       0 |
|  2423 |  1880 |       2 |
|  2424 |  1881 |       1 |
|  2425 |  1882 |       2 |
|  2426 |  1883 |       0 |
|  2427 |  1884 |       0 |
|  2428 |  1885 |       2 |
|  2429 |  1886 |       0 |
|  2430 |  1887 |       1 |
|  2431 |  1888 |       2 |
|  2432 |  1889 |       0 |
|  2433 |  1890 |       2 |
|  2434 |  1891 |       0 |
|  2435 |  1892 |       1 |
|  2436 |  1893 |       2 |
|  2437 |  1894 |       0 |
|  2438 |  1895 |       0 |
|  2439 |  1896 |       2 |
|  2440 |  1897 |       0 |
|  2441 |  1898 |       1 |
|  2442 |  1899 |       2 |
|  2443 |  1900 |       0 |
|  2444 |  1901 |       2 |
|  2445 |  1902 |       0 |
|  2446 |  1903 |       1 |
|  2447 |  1904 |       2 |
|  2448 |  1905 |       0 |
|  2449 |  1906 |       0 |
|  2450 |  1907 |       2 |
|  2451 |  1908 |       1 |
|  2452 |  1909 |       2 |
|  2453 |  1910 |       0 |
|  2454 |  1911 |       0 |
|  2455 |  1912 |       2 |
|  2456 |  1913 |       0 |
|  2457 |  1914 |       1 |
|  2458 |  1915 |       2 |
|  2459 |  1916 |       0 |
|  2460 |  1917 |       1 |
|  2461 |  1918 |       2 |
|  2462 |  1919 |       0 |
|  2463 |  1920 |       2 |
|  2464 |  1921 |       0 |
|  2465 |  1922 |       0 |
|  2466 |  1923 |       2 |
|  2467 |  1924 |       0 |
|  2468 |  1925 |       1 |
|  2469 |  1926 |       2 |
|  2470 |  1927 |       0 |
|  2471 |  1928 |       2 |
|  2472 |  1929 |       1 |
|  2473 |  1930 |       0 |
|  2474 |  1931 |       2 |
|  2475 |  1932 |       0 |
|  2476 |  1933 |       1 |
|  2477 |  1934 |       2 |
|  2478 |  1935 |       0 |
|  2479 |  1936 |       1 |
|  2480 |  1937 |       2 |
|  2481 |  1938 |       0 |
|  2482 |  1939 |       2 |
|  2483 |  1940 |       0 |
|  2484 |  1941 |       0 |
|  2485 |  1942 |       2 |
|  2486 |  1943 |       0 |
|  2487 |  1944 |       2 |
|  2488 |  1945 |       1 |
|  2489 |  1946 |       0 |
|  2490 |  1947 |       2 |
|  2491 |  1948 |       0 |
|  2492 |  1949 |       1 |
|  2493 |  1950 |       2 |
|  2494 |  1951 |       0 |
|  2495 |  1952 |       1 |
|  2496 |  1953 |       2 |
|  2497 |  1954 |       0 |
|  2498 |  1955 |       0 |
|  2499 |  1956 |       2 |
|  2500 |  1957 |       1 |
|  2501 |  1958 |       2 |
|  2502 |  1959 |       0 |
|  2503 |  1960 |       0 |
|  2504 |  1961 |       2 |
|  2505 |  1962 |       0 |
|  2506 |  1963 |       1 |
|  2507 |  1964 |       2 |
|  2508 |  1965 |       0 |
|  2509 |  1966 |       2 |
|  2510 |  1967 |       0 |
|  2511 |  1968 |       0 |
|  2512 |  1969 |       2 |
|  2513 |  1970 |       1 |
|  2514 |  1971 |       0 |
|  2515 |  1972 |       2 |
|  2516 |  1973 |       1 |
|  2517 |  1974 |       0 |
|  2518 |  1975 |       2 |
|  2519 |  1976 |       0 |
|  2520 |  1977 |       2 |
|  2521 |  1978 |       0 |
|  2522 |  1979 |       1 |
|  2523 |  1980 |       2 |
|  2524 |  1981 |       0 |
|  2525 |  1982 |       0 |
|  2526 |  1983 |       2 |
|  2527 |  1984 |       0 |
|  2528 |  1985 |       2 |
|  2529 |  1986 |       0 |
|  2530 |  1987 |       1 |
|  2531 |  1988 |       2 |
|  2532 |  1989 |       0 |
|  2533 |  1990 |       1 |
|  2534 |  1991 |       2 |
|  2535 |  1992 |       0 |
|  2536 |  1993 |       2 |
|  2537 |  1994 |       0 |
|  2538 |  1995 |       0 |
|  2539 |  1996 |       2 |
|  2540 |  1997 |       1 |
|  2541 |  1998 |       0 |
|  2542 |  1999 |       2 |
|  2543 |  2000 |       1 |
|  2544 |  2001 |       0 |
|  2545 |  2002 |       2 |
|  2546 |  2003 |       0 |
|  2547 |  2004 |       2 |
|  2548 |  2005 |       0 |
|  2549 |  2006 |       1 |
|  2550 |  2007 |       2 |
|  2551 |  2008 |       0 |
|  2552 |  2009 |       1 |
|  2553 |  2010 |       2 |
|  2554 |  2011 |       0 |
|  2555 |  2012 |       2 |
|  2556 |  2013 |       0 |
|  2557 |  2014 |       1 |
|  2558 |  2015 |       2 |
|  2559 |  2016 |       0 |
|  2560 |  2017 |       0 |
|  2561 |  2018 |       2 |
|  2562 |  2019 |       0 |
|  2563 |  2020 |       0 |
|  2564 |  2021 |       2 |
|  2565 |  2022 |       0 |
|  2566 |  2023 |       2 |
|  2567 |  2024 |       0 |
|  2568 |  2025 |       1 |
|  2569 |  2026 |       2 |
|  2570 |  2027 |       0 |
|  2571 |  2028 |       0 |
|  2572 |  2029 |       2 |
|  2573 |  2030 |       1 |
|  2574 |  2031 |       2 |
|  2575 |  2032 |       0 |


ข้อมูลจาก   http://www.horasaadrevision.com/index.php?lay=show&ac=article&Id=129532&Ntype=4





โดยโปรแกรมภาษาซีของเราจะมีการรับค่าเข้าเป็นเลขจำนวนเต็มบวก 3 ตัว 

ได้แก่
day,month และ year  


แล้วพิมพ์วันที่ เดือน ปี เพื่อแทนค่านั้นออกมา 
และข้อความที่บอกว่าปีนั้นเป็นปีอธิกวาร(leap year) หรือไม่ด้วย
ตัวอย่าง

                                                             Input :     6  4  1997
                                                          Output :  April 6, 1997 and 1997 is not a leap year
แนวคิดว่าเป็นปีอธิกวารหรือไม่ครับ - -*


  •  ปีอธิกวารจะหารด้วย 4 ลงตัว แต่หารด้วย 100 ไม่ลงตัว หรือเป็นปี ค.ศ.ซึ่งหารลงตัวด้วย400

  • ข้อยกเว้นที่ 1 ถ้าปีที่หารด้วย 4 ลงตัว แต่ ถ้าปีนั้นหารด้วย 100 ลงตัวด้วย ก็ไม่นับเป็นปี อธิกสุรธิน (กพ.มี 28 วัน) เช่นปี 1400,1500,1700,1800 เป็นต้น

  • ข้อยกเว้นที่ 2 ถ้าปีนั้นหารด้วย100 ลงตัว แต่ว่าหารด้วย 400 ลงตัว ก็ให้นับเป็น ปีอธิกสุรทิน (กพ.มี 29 วัน )เช่นปี 400,800,1200,1600 และปี 2000 ที่เพิ่งผ่านมาเป็นต้น




#include <stdio.h>
int main(){
    int i,day,month,year,check1=0,check2=0,check3=0;
    char mstr;
    printf("\t\tProgram check 'Leap year'.\n");
    printf("\t\tInput 'dd mm yyyy' Only.\n");
    printf("\t\tInput:");
    scanf(" %d %d %d",&day,&month,&year);
    check1=year%4;
    check2=year%400;
    check3=year%100;
    if(month==2&&day>29){
        printf("\t\tData fail.!!!\n");
    }else{
        if(month>0&&month<13&&day>0&&day<32){
    switch(month){
            case 1:printf("\tJanuary");
            break;
            case 2:printf("\tFabruary");
            break;
            case 3:printf("\tMarch");
            break;
            case 4:printf("\tApri");
            break;
            case 5:printf("\tMay");
            break;
            case 6:printf("\tJune");
            break;
            case 7:printf("\tJunly");
            break;
            case 8:printf("\tAgust");
            break;
            case 9:printf("\tSeptember");
            break;
            case 10:printf("\tOctober");
            break;
            case 11:printf("\tNovember");
            break;
            case 12:printf("\tDecember");
            break;
            }
    if (check1==0){
        if(check3!=0){
                printf(" %d, %d and %d is a leap year.\n",day,year,year);
            }else if(check3==0&&check2==0){
                printf(" %d, %d and %d is a leap year.\n",day,year,year);
            }else{
            printf(" %d, %d and %d is not a leap year.\n",day,year,year);
            }
        }else{
        printf(" %d, %d and %d is not a leap year.\n",day,year,year);
    }
    }else{
        printf("\t\tData fail.!!!\n");
    }
    }
   return 0;
}



ปล.อันนี้ลองไปทำกันดูครับ ถ้ามีโค๊ต อะไรที่น่าสนใจ หรือมีโจทย์มาถาม โพท์ต ถาม-ตอบกันได้เลยครับ...