em mới học lập trình nên chưa có hiểu kĩ lém, anh (chị) nào biết giúp em bài này với.
nhập vào 2 mốc thời gian dưới dạng là ngày/tháng/năm. sau đó tính số ngày trong 2 mốc đó.
Y!M: doxuanthangvn
Skype: doxuanthangvnn
Email: doxuanthang@hotmail.com
Code thì tôi cho tham khảo. Còn hỉu hay ko tuy thuộc vào bạn. Ý tưởng thì giống như bạn ở trên nói.
Lời khuyên: Lấy tờ giấy ra. Viết ra 2 ngày. và tự đổi từ từ ra số thứ tự của mỗi ngày kể từ 1/1/1. Rồi sẽ hỉu code trênC++ Code:
struct ngay { int ng; int th; int nm; }; int ktNhuan(ngay x) { return ((x.nm % 4 == 0 && x.nm % 400 != 0) || (x.nm % 400 == 0)); } int sttTrongNam(ngay x) { int stt = 0; int ngaythang[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if(ktNhuan(x) == 1) ngaythang[1] = 29; for(int i = 1; i <= x.th - 1; i++) stt = stt + ngaythang[i - 1]; return (stt + x.ng); } long SoThuTu(ngay x) { long stt = 0; int sn = 365; for(int i = 1; i <= x.nm - 1; i++) { if(ktNhuan(x) == 1) sn = 366; stt = stt + sn; sn = 365; } return (stt + sttTrongNam(x)); } long KhoangCachHaiNgay(ngay x, ngay y) { return (SoThuTu(x) - SoThuTu(y)); }
Đã được chỉnh sửa lần cuối bởi nndung179 : 10-12-2012 lúc 04:37 PM.
ý tưởng như sau, tính số ngày sẽ bắt đầu từ ngày 1/1/1;
- tính tổng số ngày trong năm từ năm 1 tới năm cần tính.
cứ hể năm nhuận thì cộng thêm 1 ngày;
- tính tổng số ngày trong cùng 1 năm cứ hể năm nhuận thì tháng 2 sẽ là 29
- cuối cùng cộng tổng số ngày trong 2 hàm trên lại