fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MIN 1000
  4. #define MAX 10000
  5. const int min = MIN, max = MAX;
  6. int kiem_tra_nam_nhuan(int nam)
  7. {
  8. return ((nam%4==0&&nam%100!=0)||nam%400==0);
  9. }
  10. int so_ngay_trong_thang( int thang, int nam)
  11. {
  12. int so_ngay ;
  13. int kiem_tra;
  14. switch(thang)
  15. {
  16. case 1:
  17. case 3:
  18. case 5:
  19. case 7:
  20. case 8:
  21. case 10:
  22. case 12:so_ngay = 31;break;
  23. case 4:
  24. case 6:
  25. case 9:
  26. case 11:so_ngay = 30;break;
  27. case 2:
  28. kiem_tra = kiem_tra_nam_nhuan(nam);
  29. if(kiem_tra==1)
  30. {
  31. so_ngay = 29;
  32. }
  33. else
  34. {
  35. so_ngay = 28;
  36. }
  37. }
  38. return so_ngay;
  39. }
  40. void kiem_tra_hop_le(int ngay, int thang, int nam)
  41. {
  42. if(nam<min||nam>max)
  43. {
  44. printf("%d/%d/%d: không hợp lệ\n",ngay,thang,nam);
  45. }
  46. else
  47. {
  48. if(thang<1||thang>12)
  49. {
  50. printf("%d/%d/%d: không hợp lệ\n",ngay,thang,nam);
  51. }
  52. else
  53. {
  54. if(ngay<1||ngay>so_ngay_trong_thang(thang,nam))
  55. {
  56. printf("%d/%d/%d: không hợp lệ\n",ngay,thang,nam);
  57. }
  58. else
  59. {
  60. printf("%d/%d/%d: hợp lệ\n",ngay,thang,nam);
  61. }
  62. }
  63. }
  64. }
  65.  
  66. int main()
  67. {
  68.  
  69. #ifndef ONLINE_JUDGE
  70. freopen("D:\\input.txt","r",stdin);
  71. #endif // ONLINE_JUDGE
  72. int ngay, thang , nam;
  73. scanf("%d/ %d/ %d", &ngay, &thang , &nam);
  74. kiem_tra_nam_nhuan(nam);
  75. so_ngay_trong_thang(thang,nam);
  76. kiem_tra_hop_le(ngay,thang,nam);
  77.  
  78. return 0;
  79. }
  80.  
  81.  
Success #stdin #stdout 0s 9432KB
stdin
29/2/3333
stdout
29/2/3333: không hợp lệ