Đánh giá, nhận xét, review các công ty tuyển dụng
Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Cách convert int sang datetime trong C#?

  1. #1
    Ngày gia nhập
    09 2012
    Bài viết
    6

    Mặc định Cách convert int sang datetime trong C#?

    công thức là thế này
    DateTime= ((Year-2000)*12*31 + (Month -1)*31 + (Day-1))*(24*60*60) + Hour* 60 *60 + Minute*60 + Second;

    For example, the now datetime is 2010-10-26 20:54:55, so DateTime= 347748895;

    cho e hỏi mình có 1 số làm sao convert ngược lại ngày tháng năm giừ phút giây.

    mong các pác chỉ giúp ! cảm ơn các pác.

  2. #2
    Ngày gia nhập
    10 2008
    Nơi ở
    đại học vinh
    Bài viết
    283

    DateTime tt = new DateTime(347748895);

    http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx

  3. #3
    Ngày gia nhập
    05 2008
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi nguyen my Xem bài viết
    DateTime tt = new DateTime(347748895);

    http://msdn.microsoft.com/en-us/libr...v=vs.100).aspx
    Trả lời như thật
    Theo nguyên tắc giải phương trình thì muốn tìm được 6 nghiệm ngày, tháng, năm, giờ, phút, giây thì phải có hệ phương trình gồm 6 phương trình. Đằng này bạn cho có 1 phương trình, cao lắm là ép buộc các điều kiện ngày tháng năm thêm tí nữa, thì làm sao mà giải ra được ngày tháng năm @@
    Đại khái là giả sử giải được đi, thì sẽ không ra một datetime duy nhất, phương trình có nhiều nghiệm

  4. #4
    Ngày gia nhập
    10 2008
    Nơi ở
    đại học vinh
    Bài viết
    283

    Trích dẫn Nguyên bản được gửi bởi thanhtanh Xem bài viết
    Trả lời như thật
    Theo nguyên tắc giải phương trình thì muốn tìm được 6 nghiệm ngày, tháng, năm, giờ, phút, giây thì phải có hệ phương trình gồm 6 phương trình. Đằng này bạn cho có 1 phương trình, cao lắm là ép buộc các điều kiện ngày tháng năm thêm tí nữa, thì làm sao mà giải ra được ngày tháng năm @@
    Đại khái là giả sử giải được đi, thì sẽ không ra một datetime duy nhất, phương trình có nhiều nghiệm
    cho e hỏi mình có 1 số làm sao convert ngược lại ngày tháng năm giừ phút giây.
    Trả lời theo câu hỏi chứ gì ?

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    gầm cầu
    Bài viết
    125

    DateTime= ((Year-2000)*12*31 + (Month -1)*31 + (Day-1))*(24*60*60) + Hour* 60 *60 + Minute*60 + Second;
    người lập ra công thức này muốn chọn thời điểm 1/1/2000 0:0:00 làm mốc và khi đổi 1 thời điểm bất kỳ (chẳng hạn 26/10/2010 20:54:55 ) sẽ thực hiện phép trừ giữa 2 thời điểm để xem chênh nhau bao nhiêu giây . số nguyên tìm dc (347748895 ) là chênh lệch số giây giữa 2 thời điểm đó .
    ý tưởng là vậy nhưng cách thực hiện ko đúng đơn giản vì ko phải tháng nào cũng có 31 ngày
    chênh lệch giây giữa 2 thời điểm C# đã cung cấp sẵn hàm
    dtbegin.Subtract(Datetime dtEnd).TotalSeconds

    còn bây giờ muốn biết 1 số nguyên bất kỳ là ngày bn thì viết đại khái
    Visual C# Code:
    1. public DateTime GettimeFromInt (int x)
    2. {
    3.        DateTime begin = DateTime.Parse("1/1/2000 0:0:00");
    4.        return begin.AddDays(x / 86400); // 1 ngày có 86400 giây
    5.        
    6. }

  6. #6
    Ngày gia nhập
    10 2009
    Nơi ở
    gầm cầu
    Bài viết
    125

    Mặc định Cách convert int sang datetime trong C#?

    chắc có bạn sẽ hỏi vậy nếu bây giờ tôi muốn xài công thức
    DateTime= ((Year-2000)*12*31 + (Month -1)*31 + (Day-1))*(24*60*60) + Hour* 60 *60 + Minute*60 + Second;
    này cơ sai bản chất kệ tôi . anh làm sao từ 1 số nguyên truy ngược lại ngày tháng cho tôi ?
    ah được ko sao thích thì nhích
    bài toán này thật ra ko phải 1 phương trình 6 ẩn như bạn gì kia nói đâu (ghê quá cơ)
    khi đã biết người lập công thức cố ép 1 tháng bất kỳ có 31 ngày thì ta tính dc 1 năm có

    86400*31*12 (đại lượng này ko phải giây tạm đặt tên là đại lượng unknown)
    tìm số năm :
    Visual C# Code:
    1. 347748895 / (86400*31*12)  //ra 10.8
    2.                   10.8 + 2000  // làm tròn xuống ra   2010
    tìm số tháng
    Visual C# Code:
    1. (347748895 - 10*86400*31*12)/(31*86400)  // ra 9.8
    2. 9.8 + 1  // làm tròn xuống ra   10
    tìm số ngày

    Visual C# Code:
    1. (26340895 - 9*86400*31)/86400  // ra 25.87  //347748895 - 10*86400*31*12 = 26340895
    2. 25.87 + 1 // làm tròn xuống ra    26

    tìm giờ phút giây chắc ko cần nói nữa
    và hiển nhiên bài toán có nghiệm duy nhất
    nhưng cái tôi băn khoăn là ko biết từ công thức này bạn có viết lại thành code chuyển int thành
    DateTime được hay ko

  7. #7
    Ngày gia nhập
    05 2008
    Bài viết
    78

    Thật ra bạn đang ép nó thành 6 phương trình đó chứ:
    1 năm = 12 tháng
    1 tháng = 31 ngày
    1 ngày = 24h
    1h = 60'
    1' = 60s
    và 347748895 = ((năm-2000)*12*31 + (tháng-1)*31 + (ngày-1))*(24*60*60) + giờ* 60 *60 + phút*60 + giây

    nhưng có một phương trình không ổn là 1 tháng = 31 ngày

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

  1. Xin hướng dẫn tạo cảnh báo (convert datetime to string)
    Gửi bởi bkthuan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 11-06-2011, 11:00 AM
  2. Convert String to Datetime trong lập trình C#?
    Gửi bởi pvtam2a trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 28-02-2011, 02:25 PM
  3. chuyển đổi dữ liệu từ datetimePicker sang kiểu datetime trong sql 2005
    Gửi bởi doquangtuan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 04-01-2011, 09:31 AM
  4. MS SQL với C# Không convert sang datetime được
    Gửi bởi hieukenpro trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 6
    Bài viết cuối: 18-11-2010, 09:47 PM
  5. Convert Datetime trong sql server 2000. cần giúp đỡ
    Gửi bởi kendy92 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 16-06-2010, 10:29 AM

Tags của đề tài này

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