Quy đổi thời gian giống Excel trong C#

Liên hệ QC

NghiaKieu

Thành viên hoạt động
Tham gia
27/5/12
Bài viết
119
Được thích
83
Trong excel quy đổi 44365 thành ngày 18/06/2021 tức ngày 0 là 00/01/1900 vậy trong ngôn ngữ lập trình khác như C# thì có các nào quy đổi như trên không ạ?
 
Cảm ơn bác nhiều ạ!
 
Trong excel quy đổi 44365 thành ngày 18/06/2021 tức ngày 0 là 00/01/1900 vậy trong ngôn ngữ lập trình khác như C# thì có các nào quy đổi như trên không ạ?
Mỗi ngôn ngữ và mỗi nền tảng có cách nhìn về ngày khác nhau.
C# thuộc về nền tảng (platform) .NET, nền tảng này nhìn ngày tháng bằng ticks.
Excel dùng loại ngày mà Microsoft dùng OLE Automation để liên hệ với các phần mềm khác. (OLE = Object Linking and Embedding)

Trong .NET có đối tượng DateTime. Đối tượng này có hàm FromOADate để chuyển đổi con số serial date của Excel thành ngày theo .NET
 
Mỗi ngôn ngữ và mỗi nền tảng có cách nhìn về ngày khác nhau.
C# thuộc về nền tảng (platform) .NET, nền tảng này nhìn ngày tháng bằng ticks.
Excel dùng loại ngày mà Microsoft dùng OLE Automation để liên hệ với các phần mềm khác. (OLE = Object Linking and Embedding)

Trong .NET có đối tượng DateTime. Đối tượng này có hàm FromOADate để chuyển đổi con số serial date của Excel thành ngày theo .NET
Dạ cảm ơn bác nhiều ạ!
 
Tôi không thấy ai dùng đơn vị Unix Time trong VBA Excel nhỉ? Dùng Unix ưu điểm ở chỗ cộng trừ thoải mái, không phải lo rào # # trong câu lệnh SQL. Chỉ hơi tốn thêm vài câu lệnh chuyển đổi đầu và cuối code thôi.
 
Tôi không thấy ai dùng đơn vị Unix Time trong VBA Excel nhỉ? Dùng Unix ưu điểm ở chỗ cộng trừ thoải mái, không phải lo rào # # trong câu lệnh SQL. Chỉ hơi tốn thêm vài câu lệnh chuyển đổi đầu và cuối code thôi.
VBA Excel là đặc sản của Microsoft. Mắc mớ gì Microsoft phải hổ trợ Unix cho tận gốc. Những cái chuyển đổi kiểu này ai cần thì tự lo lấy.

Chú: câu lệnh SQL mà bạn nói trên là bạn muốn nói tiêu chuẩn ANSI SQL, hay là Access?
 
Chính là cái .Value2 đó anh ơi.
Anh để ý sẽ thấy dùng rất rất nhiều rồi. :)


Không phải chuyển đổi gì cả. Cứ đọc và ghi bình thường.
Value2 là số ngày tính từ ngày 1-1-1900, còn unix là số giây tính từ 0h ngày 1-1-1970 mà bạn!
Ghi vào trang tính bằng kiểu thông thường thì phải chuyển đổi sang unix để tính toán cho tiện, sau đó lại chuyển đổi để ghi lại trang tính chứ nhỉ!
Bài đã được tự động gộp:

VBA Excel là đặc sản của Microsoft. Mắc mớ gì Microsoft phải hổ trợ Unix cho tận gốc. Những cái chuyển đổi kiểu này ai cần thì tự lo lấy.

Chú: câu lệnh SQL mà bạn nói trên là bạn muốn nói tiêu chuẩn ANSI SQL, hay là Access?
1/ Ý tôi muốn nói là dùng nó trong VBA để tính toán, so sánh, truy vấn cho tiện và tất nhiên việc chuyển đổi là do người viết code làm.
2/ Câu lệnh SQL trong ADODB bác à, chắc đó là chuẩn Access theo ý bác.
 
Web KT
Back
Top Bottom