Hic. Pác nào có thuật toán chuyển đổi dương lịch sang Âm lich cho lịch vạn niên không

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • m4u_91
    Thành viên chính thức
    • Jul 2010
    • 37

    #1

    Hic. Pác nào có thuật toán chuyển đổi dương lịch sang Âm lich cho lịch vạn niên không

    Tình hình là năm sau là năm nhuận! mà kái lịch của em nó chạy sai; có pác nào giúp em dc ko? code C càng tốt nhé
  • hoangdai
    Thành viên tích cực
    • Nov 2005
    • 2720

    #2
    Đã có bác giới thiệu cách làm rồi đó. ptcom


    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
    Tel: 031 518648 Phone: 0904 283 505

    Comment

    • traixommoi
      Thành viên mới
      • Dec 2007
      • 21

      #3
      Mình có cái này cho bạn. Bạn tự đọc và hiểu nha.
      void he_24h(void)
      {
      gio=z;
      //------------
      if(l==1) gio=z;
      if(l==2) if((z>12)||(z==0)) gio=abs(z-12);
      //------------
      if (thang==2)
      if (nam%4==0)
      y=30;
      else
      y=29;
      if ((thang==1)||(thang==3)||(thang==5)||(thang==7)||( thang==8)||(thang==10)||(thang==12))
      y=32;
      if ((thang==4)||(thang==6)||(thang==9)||(thang==11))
      y=31;
      }

      Comment

      • m4u_91
        Thành viên chính thức
        • Jul 2010
        • 37

        #4
        nhưng nó nhuận 1 tháng; thì làm sao để năm đó nó hiển thị dc 2 tháng nhuận đấy mà ngày dương vẫn ko sai

        Comment

        • m4u_91
          Thành viên chính thức
          • Jul 2010
          • 37

          #5
          Đây là code lịch năm 2011; giờ mình muốn chuyển sang năm 2012 (nhuận t4 âm) thì sao dc"
          //-- chuyen ngay duong sang ngay am------
          void DA(int m,d)
          {
          ngayduong=(m-1)*31+d;//so ngay duong so voi 1.1
          if ((m==3)|(m==4)) ngayduong=ngayduong-3;//do thang 2 co 28 ngay
          else
          if ((m==5)|(m==6)) ngayduong=ngayduong-4;// thang 4 co 30 ngay
          else
          if ((m==7)|(m==8)|(m==9)) ngayduong=ngayduong-5;//thang 6 co 30 ngay
          else
          if ((m==10)|(m==11)) ngayduong=ngayduong-6;//thang 9 co 30 ngay
          else
          if (m==12) ngayduong=ngayduong-7;// thang 11 co 30 ngay
          ngayam=ngayduong+26;//mung 1.1 la ngay 27.11
          thangam=11;
          if (ngayam>=30)
          {
          ngayam=ngayam-29;
          thangam=12;
          }
          while (ngayam>=30)
          {
          if ((thangam==2)|(thangam==5)|(thangam==8)|(thangam== 7)|(thangam==10))
          {
          if (ngayam==29) break;
          ngayam=ngayam-29;
          thangam++;
          if (thangam==13) thangam=1;
          }
          else
          if (ngayam==30) break;
          else
          {
          ngayam=ngayam-30;
          thangam++;
          if (thangam==13) thangam=1;
          }
          }
          }

          Comment

          • m4u_91
            Thành viên chính thức
            • Jul 2010
            • 37

            #6
            :-s :-s :-s :-s :-s :-s

            Comment

            Về tác giả

            Collapse

            m4u_91 Tìm hiểu thêm về m4u_91

            Bài viết mới nhất

            Collapse

            Đang tải...