Xu Hướng 9/2023 # Hướng Dẫn Sử Dụng Date Và Time Trong C# # Top 11 Xem Nhiều | Channuoithuy.edu.vn

Xu Hướng 9/2023 # Hướng Dẫn Sử Dụng Date Và Time Trong C# # Top 11 Xem Nhiều

Bạn đang xem bài viết Hướng Dẫn Sử Dụng Date Và Time Trong C# được cập nhật mới nhất tháng 9 năm 2023 trên website Channuoithuy.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Chia sẻ

Chào các bạn !

Trong bài này chúng tôi sẽ hướng dẫn các bạn làm việc với Date và Time trong C#.

C# .Net cung cấp lớp DateTime để chúng ta làm việc với thời gian, lớp DateTime cung cấp nhiều phương thức và thuộc tính hữu ích để tính toán ngày và thời gian.

Phạm vi của DateTime là từ 01/01/0001 12:00:00 AM đến 31/12/9999 11:59:59 PM.

DateTime d1 = DateTime.Now; listBox1.Items.Add("Năm: " + d1.Year); listBox1.Items.Add("Tháng: " + d1.Month); listBox1.Items.Add("Ngày: " + d1.Day); listBox1.Items.Add("Ngày trong tuần: " + d1.DayOfWeek); listBox1.Items.Add("Ngày trong năm: " + d1.DayOfYear); listBox1.Items.Add("Giờ: " + d1.Hour); listBox1.Items.Add("Thời gian trong ngày: " + d1.TimeOfDay); listBox1.Items.Add("Phút: " + d1.Minute);

Như vậy, để sử dụng lớp DateTime thì việc đầu tiên là ta cần khởi tạo đối tượng thông qua câu lệnh

DateTime d1 = DateTime.Now;

Tiếp theo ta có thể sử dụng các thuộc tính của nó như: Year, Month, Day, DayOfWeek, DayOfYear, Hour, TimeOfDay hoặc Minute để lấy ra các giá trị thời gian khác nhau.

listBox1.Items.Add(DateTime.Now.ToString()); listBox1.Items.Add(DateTime.Now.ToShortDateString()); listBox1.Items.Add(DateTime.Now.ToLongDateString()); listBox1.Items.Add(DateTime.Now.ToShortTimeString()); listBox1.Items.Add(DateTime.Now.ToLongTimeString());

Cộng thêm hoặc bớt ngày tính từ ngày và thời gian hiện tại

Lớp DateTime trong C# còn cung cấp một số phương thức để cộng thêm hoặc trừ ngày và thời gian từ đối tượng DateTime. Ngày được cộng hoặc trừ tính từ ngày hiện tại.

DateTime dt = DateTime.Today.AddDays(-2); string strDate = dt.ToString("dd / MM / yy"); listBox1.Items.Add(strDate); DateTime tomorrow = DateTime.Today.AddDays(1); string strDate = tomorrow.ToString("dd / MM / yy"); listBox1.Items.Add(strDate); DateTime later = DateTime.Now.AddMinutes(30); string strDate = later.ToString("dd / MM / yy, hh : mm "); listBox1.Items.Add(strDate);

Tính tổng số ngày giữa hai ngày

Để có được số ngày giữa hai ngày với định dạng DateTime, chúng ta cần sử dụng đối tượng TimeSpan. Thực hiện như sau:

DateTime d1 = DateTime.Now.AddDays(6); DateTime d2 = DateTime.Now.AddDays(-2); TimeSpan t = d1 – d2; double diff = t.TotalDays;

Chia sẻ

Điều hướng bài viết

Hướng Dẫn Sử Dụng Date Time Trong C#

Trong .NET Framework, System.DateTime là một class đại diện cho ngày tháng và thời gian, giá trị của nó nằm trong khoảng 12:00:00 đêm ngày 01-01-0001 tới 11:59:59 tối ngày 31-12-9999.

Có nhiều phương thức khởi tạo (constructor) để bạn khởi tạo một đối tượng DateTime.

Now là một thuộc tính tĩnh của DateTime nó trả về đối tượng DateTime mô tả thời điểm hiện tại.

DateTime now = DateTime.Now; Console.WriteLine("Now is "+ now); Thuộc tính Kiểu dữ liệu Mô tả

Ticks

long

Lấy ra số lượng “tick” được đại diện bởi đối tượng này. (1 phút = 600 triệu tick)

DateTime cung cấp các phương thức cho phép bạn thêm, hoặc trừ một khoảng thời gian. TimeSpan là một class chứa thông tin một khoảng thời gian, nó có thể tham gia như một tham số trong các phương thức thêm bớt thời gian của DateTime.

Class DateTime cũng có các phương thức cho phép thêm bớt một loại đơn vị thời gian chẳng hạn:

AddYears

AddDays

AddMinutes

Bạn có hai đối tượng DateTime, bạn có thể tính được khoảng thời gian giữa 2 đối tượng này, kết quả nhận được là một đối tượng TimeSpan.

DateTime có một phương thức tĩnh làCompare. Phương thức dùng để so sánh 2 đối tượng DateTime xem đối tượng nào sớm hơn đối tượng còn lại:

public static int Compare(DateTime firstDateTime, DateTime secondDateTime);

Định dạng DateTime nghĩa là chuyển đổi đối tượng DateTime thành một string theo một khuôn mẫu nào đó, chẳng hạn theo định dạng ngày/tháng/năm, … hoặc định dạng dựa vào địa phương (locale) cụ thể.

Phương thức GetDateTimeFormats của DateTime:

Chuyển đổi giá trị của đối tượng này (DateTime) thành một mảng các string đã định dạng theo các chuẩn được hỗ trợ.

Ví dụ trên liệt kê ra các string sau khi định dạng một đối tượng DateTime theo các tiêu chuẩn có sẵn được hỗ trợ bởi.NET. Để lấy định dạng theo một mẫu cụ thể bạn sử dụng một trong các phương thức sau:

Phương thứcMô tả

ToString(String, IFormatProvider)

Chuyển đổi các giá trị của đối tượng DateTime hiện tại thành string đại diện tương đương của nó bằng cách sử dụng định dạng cho bởi tham số String, và các thông tin định dạng văn hóa (Culture) cho bởi tham số IFormatProvider.

ToString(IFormatProvider)

Chuyển đổi giá trị của đối tượng DateTime hiện tại thành một string tương ứng với thông tin định dạng văn hóa (Culture) cho bởi tham số IFormatProvider.

ToString(String)

Chuyển đổi các giá trị của đối tượng DateTime hiện tại thành một string tương đương của nó bằng cách sử dụng định dạng cho bởi tham số String và các quy ước định dạng của nền văn hóa hiện tại.

Các ký tự định dạng tiêu chuẩn.

CodePattern

“d”

Ngày tháng năm ngắn

“D”

Ngày tháng năm dài

“f”

Ngày tháng năm dài, thời gian ngắn

“F”

Ngày tháng năm dài, thời gian dài.

“g”

Ngày tháng thời gian nói chung. Thời gian ngắn.

“G”

Ngày tháng thời gian nói chung. Thời gian dài.

“M”, ‘m”

Tháng/ngày.

“O”, “o”

Round-trip date/time.

“R”, “r”

RFC1123

“s”

Ngày tháng thời gian có thể sắp xếp

“t”

Thời gian ngắn

“T”

Thời gian dài

“u”

Ngày tháng năm có thể sắp xếp, phổ biến (Universal sortable date time).

“U”

Ngày tháng năm thời gian dài, phổ biến (Universal full date time).

“Y”, “y”

Năm tháng

======d ======== 12/20/2023 12/20/15 12/20/15 12/20/2023 15/12/20 2023-12-20 20-Dec-15 ======D ======== Sunday, December 20, 2023 December 20, 2023 Sunday, 20 December, 2023 20 December, 2023 ======f ======== Sunday, December 20, 2023 11:30 AM Sunday, December 20, 2023 11:30 AM Sunday, December 20, 2023 11:30 Sunday, December 20, 2023 11:30 December 20, 2023 11:30 AM December 20, 2023 11:30 AM December 20, 2023 11:30 December 20, 2023 11:30 Sunday, 20 December, 2023 11:30 AM Sunday, 20 December, 2023 11:30 AM Sunday, 20 December, 2023 11:30 Sunday, 20 December, 2023 11:30 20 December, 2023 11:30 AM 20 December, 2023 11:30 AM 20 December, 2023 11:30 20 December, 2023 11:30 ======F ======== Sunday, December 20, 2023 11:30:50 AM Sunday, December 20, 2023 11:30:50 AM Sunday, December 20, 2023 11:30:50 Sunday, December 20, 2023 11:30:50 December 20, 2023 11:30:50 AM December 20, 2023 11:30:50 AM December 20, 2023 11:30:50 December 20, 2023 11:30:50 Sunday, 20 December, 2023 11:30:50 AM Sunday, 20 December, 2023 11:30:50 AM Sunday, 20 December, 2023 11:30:50 Sunday, 20 December, 2023 11:30:50 20 December, 2023 11:30:50 AM 20 December, 2023 11:30:50 AM 20 December, 2023 11:30:50 20 December, 2023 11:30:50 ======g ======== 12/20/2023 11:30 AM 12/20/2023 11:30 AM 12/20/2023 11:30 12/20/2023 11:30 12/20/15 11:30 AM 12/20/15 11:30 AM 12/20/15 11:30 12/20/15 11:30 12/20/15 11:30 AM 12/20/15 11:30 AM 12/20/15 11:30 12/20/15 11:30 12/20/2023 11:30 AM 12/20/2023 11:30 AM 12/20/2023 11:30 12/20/2023 11:30 15/12/20 11:30 AM 15/12/20 11:30 AM 15/12/20 11:30 15/12/20 11:30 2023-12-20 11:30 AM 2023-12-20 11:30 AM 2023-12-20 11:30 2023-12-20 11:30 20-Dec-15 11:30 AM 20-Dec-15 11:30 AM 20-Dec-15 11:30 20-Dec-15 11:30 ======G ======== 12/20/2023 11:30:50 AM 12/20/2023 11:30:50 AM 12/20/2023 11:30:50 12/20/2023 11:30:50 12/20/15 11:30:50 AM 12/20/15 11:30:50 AM 12/20/15 11:30:50 12/20/15 11:30:50 12/20/15 11:30:50 AM 12/20/15 11:30:50 AM 12/20/15 11:30:50 12/20/15 11:30:50 12/20/2023 11:30:50 AM 12/20/2023 11:30:50 AM 12/20/2023 11:30:50 12/20/2023 11:30:50 15/12/20 11:30:50 AM 15/12/20 11:30:50 AM 15/12/20 11:30:50 15/12/20 11:30:50 2023-12-20 11:30:50 AM 2023-12-20 11:30:50 AM 2023-12-20 11:30:50 2023-12-20 11:30:50 20-Dec-15 11:30:50 AM 20-Dec-15 11:30:50 AM 20-Dec-15 11:30:50 20-Dec-15 11:30:50 ======M ======== December 20 ======m ======== December 20 ======O ======== 2023-12-20T11:30:50.0000000 ======o ======== 2023-12-20T11:30:50.0000000 ======R ======== ======r ======== ======s ======== 2023-12-20T11:30:50 ======t ======== 11:30 AM 11:30 AM 11:30 11:30 ======T ======== 11:30:50 AM 11:30:50 AM 11:30:50 11:30:50 ======u ======== 2023-12-20 11:30:50Z ======U ======== Sunday, December 20, 2023 4:30:50 AM Sunday, December 20, 2023 04:30:50 AM Sunday, December 20, 2023 4:30:50 Sunday, December 20, 2023 04:30:50 December 20, 2023 4:30:50 AM December 20, 2023 04:30:50 AM December 20, 2023 4:30:50 December 20, 2023 04:30:50 Sunday, 20 December, 2023 4:30:50 AM Sunday, 20 December, 2023 04:30:50 AM Sunday, 20 December, 2023 4:30:50 Sunday, 20 December, 2023 04:30:50 20 December, 2023 4:30:50 AM 20 December, 2023 04:30:50 AM 20 December, 2023 4:30:50 20 December, 2023 04:30:50 ======Y ======== December, 2023 ======y ======== December, 2023

DateTime.Parse(string)

Nếu bạn có một chuỗi Date định dạng tiêu chuẩn bạn dễ dàng chuyển nó thành đối tượng DateTime thông qua phương thức tĩnh DateTime.Parse(string). Thông thường các chuỗi ngày tháng thời gian bạn thấy trên Internet là các chuỗi định dạng chuẩn, các cơ sở dữ liệu MySQL hoặc SQL Server cũng sử dụng các định dạng chuẩn để hiển thị ngày tháng thời gian.

string w3Time = "2023/05/26 14:37:11"; string nyTime = "Thursday, February 26, 2012"; string isoTime = "2023-02-10"; string windowsTime = "11/21/2023 11:35 PM"; string windowsPanelTime = "11:07:03 PM";

Trong phần này tôi sẽ hướng dẫn bạn chuyển một đối tượng DateTime ra một string có định dạng tùy biến, chẳng hạn“dd/MM/yyyy”,…. và ngược lại.

Sử dụng DateTime.ToString(string):

string format = "dd/MM/yyyy HH:mm:ss"; DateTime now = DateTime.Now; string s = now.ToString(format); public static DateTime Parse(string s) public static DateTime Parse(string s, IFormatProvider provider) public static DateTime Parse(string s, IFormatProvider provider, DateTimeStyles styles) public static bool TryParseExact(string s, string format, IFormatProvider provider, DateTimeStyles style, out DateTime result) public static bool TryParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style, out DateTime result) Phương thứcVí dụ

static DateTime Parse(string)

static DateTime ParseExact( string s, string format, IFormatProvider provider )

string dateString = “20230319 09:57”; DateTime.ParseExact(dateString ,”yyyyMMdd HH:mm”,null);

static bool TryParseExact( string s, string format, IFormatProvider provider, DateTimeStyles style, out DateTime result )

Hướng Dẫn Sử Dụng Date, Time Trong Java

Class

Mô tả

java.util. Calendar

Lớp mô tả bộ Lịch. Nó có các phương thức toán học về thời gian, chẳng hạn thêm ngày, bớt ngày,…

java.util. GregorianCalendar

Là một lớp con trực tiếp của java.util.Calendar, mô tả ngày Dương Lịch, bộ lịch được sử dụng rộng rãi trên thế giới ngày nay. Nó có tất cả các method từ java.util.Calendar để thao tác toán học trên ngày tháng năm và thời gian.

java.text. SimpleDateFormat

Lớp này giúp bạn chuyển một String có định dạng ngày tháng sang kiểu Date và ngược lại

currentTimeMillis() là một method tĩnh của class System. Nó trả về khoảng thời gian bằng mili giây tính từ ngày 1-1-1970 cho tới thời điểm hiện tại.

System.currentTimeMillis() thường được sử dụng để đo khoảng thời gian làm một việc gì đó bằng cách gọi method này trước khi bắt đầu công việc, và sau khi hoàn thành công việc.

TimeUnit là một Enum, nó được đưa vào từ Java5. Nó có một số method chuyển đổi giữa các đơn vị thời gian, và thực sự có ích trong một số tình huống.

int minute = 5; int millisecond = minute * 60 * 1000; long millisecond = TimeUnit.MINUTES.toMillis(minute);

Một số method của TimeUnit

public long toNanos(long d); public long toMicros(long d); public long toMillis(long d); public long toSeconds(long d); public long toMinutes(long d); public long toHours(long d); public long toDays(long d) ; public long convert(long d, TimeUnit u);

java.util.Date là một trong các class mô tả ngày tháng đầu tiên trong Java. Thật đáng tiếc là hầu hết các phương thức của nó đã lỗi thời, và thay vào đó là sử dụng các phương thức của java.util.Calendar. Nhưng bạn vẫn có thể sử dụng java.util.Date để mô tả ngày tháng.

Chỉ còn 2 Constructor có thể sử dụng:

Date date1 = new Date(); long millis = .....; Date date2 = new Date(millis);

java.sql.Date

java.sql.Time

java.sql.Timestamp

java.sql.Date tương ứng với SQL DATE, nghĩa là nó chỉ lưu trữ năm, tháng, ngày và bỏ qua giờ phút giây, và milli giây. Thêm nữa java.sql.Date không chứa thông tin về múi giờ.

java.sql.Time tương ứng với SQL TIME và chỉ chứa các thông tin về giờ, phút, giây, milli giây.

java.sql.Timestamp tương ứng với SQL TIMESTAMP, nó chính xác tới nano giây (chú ý java.util.Date chỉ hỗ trợ tới milli giây!) với độ chính xác tùy biến.

Các class trên tham gia vào trong PreparedStatement trong JDBC API, chẳng hạn các methodsetDate,setTime,setTimestamp. Hoặc có thể lấy ra từResultSet.

Gregorian Calendar: Đây chính là Dương Lịch, còn gọi lịch Thiên chúa giáo, là lịch quốc tế. Nó được sử dụng rộng rãi nhất được đặt tên theo Đức Giáo Hoàng Gregory XIII, người đã giới thiệu nó vào năm 1582.

Japanese Imperial Calendar: Đây là bộ lịch truyền thống của Nhật bản, hiện nay Nhật bản đã chuyển sang sử dụng dương lịch ( Gregorian Calendar), tuy nhiên bộ lịch truyền thống vẫn được sử dụng một cách không chính thức.

Calendar là class mô phỏng một hệ thống Lịch.

Calendar có một vài class con:

GregorianCalendar

JapaneseImperialCalendar

BuddhistCalendar

Calendar là một class trừu tượng. Nghĩa là bạn không thể khởi tạo nó từ cấu tử (Constructor). Tuy nhiên có 2 method tĩnh để tạo ra đối tượng Calendar.

public static Calendar getInstance(); public static Calendar getInstance(TimeZone zone); public static Calendar getInstance(Locale aLocale); public static Calendar getInstance(TimeZone zone,Locale aLocale); Calendar c = Calendar.getInstance();

Khi bạn sử dụng Calendar.getInstance(TimeZone,Locale) sẽ nhận được trả về là một trong các class con nói trên. Mà hầu hết là trả về GregorianCalendar.

Gọi Calendar.getInstance() trả về đối tượng Calendar với tham số TimeZone theo máy tính của bạn và Locale mặc định.

Hãy xem code của class Calendar (JDK7):

Một số method quan trọng:

Phương thức get(int)

Giá trị trả về

get(Calendar.DAY_OF_WEEK)

1 (Calendar.SUNDAY) tới 7 (Calendar.SATURDAY).

get(Calendar.YEAR)

Năm (year)

get(Calendar.MONTH)

0 (Calendar.JANUARY) tới 11 (Calendar.DECEMBER).

get(Calendar.DAY_OF_MONTH)

1 tới 31

get(Calendar.DATE)

1 tới 31

get(Calendar.HOUR_OF_DAY)

0 tới 23

get(Calendar.MINUTE)

0 tới 59

get(Calendar.SECOND)

0 tới 59

get(Calendar.MILLISECOND)

0 tới 999

get(Calendar.HOUR)

0 tới 11, được sử dụng cùng với Calendar.AM_PM.

get(Calendar.AM_PM)

0 (Calendar.AM) hoặc 1 (Calendar.PM).

get(Calendar.DAY_OF_WEEK_IN_MONTH)

DAY_OF_MONTH 1 tới 7 luôn luôn tương ứng với DAY_OF_WEEK_IN_MONTH 1;

8 tới 14 tương ứng với DAY_OF_WEEK_IN_MONTH 2, …

get(Calendar.DAY_OF_YEAR)

1 tới 366

get(Calendar.ZONE_OFFSET)

get(Calendar.ERA)

Biểu thị AD (GregorianCalendar.AD), BC (GregorianCalendar.BC).

Một số method khác của Calendar:

void set(int calendarField, int value) void set(int year, int month, int date) void set(int year, int month, int date, int hour, int minute, int second) void add(int field, int amount) void roll(int calendarField, boolean up) void roll(int calendarField, int amount): Date getTime() void setTime(Date date) long getTimeInMills(): void setTimeInMillis(long millis) void setTimeZone(TimeZone value) Date now = new Date(); Calendar c = Calendar.getInstance(); c.setTime(now); Calendar c = Calendar.getInstance(); Date date = c.getTime(); Date date = new Date(); DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); String dateString = df.format(date); String dateString = "23/04/2005 23:11:59"; DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date date = df.parse(dateString); 8.1- Tùy biến định dạng Date, Time

Tùy biến định dạng Date. Hãy xem một số ví dụ định dạng và kết quả trả về.

Khuôn mẫu Kết quả

dd.MM.yy

30.06.09

yyyy.MM.dd G ‘at’ hh:mm:ss z

2009.06.30 AD at 08:29:36 PDT

EEE, MMM d, ”yy

Tue, Jun 30, ’09

h:mm a

8:29 PM

H:mm

8:29

H:mm:ss:SSS

8:28:36:249

K:mm a,z

8:29 AM,PDT

yyyy.MMMMM.dd GGG hh:mm aaa

2009.June.30 AD 08:29 AM

Các mẫu cú pháp định dạng Date

Ký hiệu Ý nghĩa Trả về Example

Đây là các khóa học trực tuyến bên ngoài website o7planning mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.

Xử Lý Datetime Trong C#

Phần này chúng ta tìm hiểu các phương thức so sánh, đối chiếu thời gian trong DateTime. Để lấy về kết quả True/False hoặc một cờ hiệu cụ thể của việc so sánh 2 khoảng thời gian

.

+ Compare: Truyền vào hai giá trị của hai ngày kiểu DateTime, hàm này sẽ so sánh giá trị 1 vs 2 để đưa ra kết quả. Chỉ ba giá trị được trả về: 1, 0, -1 thể hiện ngày thứ nhất lớn hơn, bằng nhau, nhỏ hơn. + CompareTo: Phương thức này có hai cách dùng    – Cách 1 phương thức này được giá trị datetime cụ thể sử dụng để so sánh với giá trị khác.    – Cách 2 phương thức này  được giá trị datetime cụ thể sử dụng để so sánh với đối tượng datetime khác được truyền vào. Cả 2 cách kết quả trả về cũng chỉ có ba giá trị như hàm Compare trên là: 1, 0, -1 + Equals: Trả về một kết quả True/False. Dùng để so sánh giữa hai ngày có bằng nhau không.

Lưu ý !

Phương thức sử dụng static chỉ được gọi thông qua lớp chứa nó và không thể gọi từ một đối tượng cụ thể nào. Bạn có thể tìm hiểu thêm Static keyword

Phương thức sử dụng static chỉ được gọi thông qua lớp chứa nó và không thể gọi từ một đối tượng cụ thể nào. Bạn có thể tìm hiểu thêm Static keyword

1. Compare() – Đây là phương thức static của DateTime. Trả về một giá trị kiểu Int, với 2 tham số truyền vào là hai giá trị datetime.

Demo:

DateTime today

=

DateTime

.

Now

;

// Get date time now this computer

DateTime daysAgo

=

new

DateTime

(

2013

,

09

,

10

)

;

int

result

=

DateTime

.

Compare

(

today

,

daysAgo

)

;

int

result1

=

DateTime

.

Compare

(

today

,

today

)

;

int

result2

=

DateTime

.

Compare

(

daysAgo

,

today

)

;

Console

.

WriteLine

(

result

)

;

// Output: 1

Console

.

WriteLine

(

result1

)

;

// Output: 0

Console

.

WriteLine

(

result2

)

;

// Output: -1

– Bạn có thể dùng các giá trị result để dùng cho các điều kiện, chẳng hạn in ra thông tin ngày nào lớn hơn hoặc bằng nhau …………………..

2. CompareTo()

– Phương thức này trả về kết quả kiểu Int, với 1 tham số truyền vào là giá trị datetime được khởi tạo trước đó hoặc một đối tượng DateTime. Nó chỉ khác với Compare chút xíu, kết quả trả về hoàn toàn như hàm so sánh Compare

Demo 1:  Truyền vào giá trị khởi tạo trước

DateTime today

=

DateTime

.

Now

;

// Get date time this computer

DateTime newday

=

new

DateTime

(

2013

,

8

,

19

)

;

int

result

=

today

.

CompareTo

(

newday

)

;

int

result1

=

today

.

CompareTo

(

today

)

;

int

result2

=

newday

.

CompareTo

(

today

)

;

Console

.

WriteLine

(

result

)

;

// Output: 1

Console

.

WriteLine

(

result1

)

;

// Output: 0

Console

.

WriteLine

(

result2

)

;

// Output: -1

Demo 2: Truyền vào một đối tượng DT mới

DateTime newday

=

new

DateTime

(

2013

,

10

,

24

)

;

int

result

=

newday

.

CompareTo

(

DateTime

.

Now

)

;

Console

.

WriteLine

(

result

)

;

/*

             */

3. Equals() – Trả về kết quả True nếu 2 ngày được so sánh bằng nhau và ngược lại  là False . Ta cần một biến kiểu bool để get lấy giá trị này

Demo 1: Một ngày cụ thể gọi hàm equals, với tham số truyền vào là một ngày khác để so sánh.

DateTime one

=

new

DateTime

(

2013

,

09

,

29

)

;

DateTime two

=

new

DateTime

(

2012

,

05

,

25

)

;

DateTime three

=

two

;

// Compare the DateTime objects and display the results.

bool

result

=

one

.

Equals

(

two

)

;

Console

.

WriteLine

(

"

The result is: {0}.

"

,

result

)

;

//Output: False

result

=

two

.

Equals

(

three

)

;

Console

.

WriteLine

(

"

The result is: {0}.

"

,

result

)

;

//Output: True

Demo 2: Thay vì tham số truyền vào là giá trị thời gian được khởi tạo trước đó như trên, ta có thể truyền một đối tượng mới như sau:

DateTime one

=

new

DateTime

(

2013

,

09

,

29

)

;

bool

result

=

one

.

Equals

(

DateTime

.

Now

)

;

Console

.

WriteLine

(

"

The result is: {0}.

"

,

result

)

;

//Output: False

 Demo 3: Hàm equals() lúc này là hàm static. Và cũng có 2 cách truyền tham số, kiểu thứ nhất truyền vào 2 tham số khởi tạo từ trước, kiểu thứ hai truyền vào 2 đối tượng khởi tạo tại chỗ.

DateTime one

=

new

DateTime

(

2013

,

10

,

10

)

;

DateTime two

=

new

DateTime

(

2013

,

10

,

10

)

;

//True

DateTime time1

=

new

DateTime

(

2013

,

09

,

27

,

15

,

59

,

59

)

;

DateTime time2

=

new

DateTime

(

2013

,

09

,

27

,

15

,

59

,

59

)

;

//True

DateTime dt1

=

new

DateTime

(

DateTime

.

Today

.

Ticks

)

;

DateTime dt2

=

new

DateTime

(

DateTime

.

Today

.

Ticks

)

;

// True

/* newdays1 and newdays2 are equal if their Ticks property values are equal, otherwise false. */

DateTime newdays1

=

new

DateTime

(

DateTime

.

Now

.

Ticks

)

;

DateTime newdays2

=

new

DateTime

(

DateTime

.

Now

.

Ticks

)

;

//True/False

Console

.

WriteLine

(

"

Time now is:

"

+

'n'

+

"

{0}

"

+

'n'

+

"

{1}

"

,

newdays2

,

newdays1

)

;

/* Get ticks values*/

long

tick1

=

newdays1

.

Ticks

;

long

tick2

=

newdays2

.

Ticks

;

Console

.

WriteLine

(

"

Ticks value of TimeNow is:

"

+

'n'

+

"

{0}

"

+

'n'

+

"

{1}

"

,

tick1

,

tick2

)

;

/* Get result from Equals*/

bool

result

=

DateTime

.

Equals

(

one

,

two

)

;

bool

result1

=

DateTime

.

Equals

(

time1

,

time2

)

;

bool

result2

=

DateTime

.

Equals

(

dt1

,

dt2

)

;

bool

result3

=

DateTime

.

Equals

(

newdays1

,

newdays2

)

;

Console

.

WriteLine

(

"

The result is:

"

+

result

)

;

//Output: True

Console

.

WriteLine

(

"

The result is:

"

+

result1

)

;

//Output: True

Console

.

WriteLine

(

"

The result is:

"

+

result2

)

;

//Output: True

Console

.

WriteLine

(

"

The result is:

"

+

result3

)

;

//Output: True/False

– Ở ví dụ trên, các phép sánh giữa 2 ngày bằng nhau hoặc khởi tạo thời gian cụ thể thì cho ra kết quả luôn chính xác là True, hoặc khác nhau là False. Trong ví dụ có giá trị:

DateTime

.

Now

Thì câu lệnh này có nghĩa là thời gian sẽ bằng thời gian của hệ thống tại thời điểm đó. Khác với câu lệnh:

DateTime

.

Today

Câu lệnh này chỉ lấy ra ngày tháng năm của ngày hiện tạo. Phần thời gian mặc định 12:00:00 AM

– Đối với lệnh Now nếu chương trình đọc xong lệnh thứ nhất chuyển qua lệnh thứ hai sẽ có độ trễ, nếu nhanh có thể không. Nên kết quả Result3 có thể là True hoặc False, không xác định. Đó là demo để so sánh thế, thực ra bình thường cũng không có ai so sánh thời gian hiện tại với hiện tại như thế cả.

Chung quy lại một điều phương thức Equals này nếu muốn chính xác bạn cần xác định các giá trị thời gian cần so sánh cần phải cụ thể, vì hàm này so sánh sâu tới giá trị nhỏ nhất mà C# hỗ trợ chỉ cần thay đổi rất nhỏ cũng thay đổi kết quả trả về. Nói lại, Ticks ở đây là giá trị được chuyển đổi từ Ngày Tháng cụ thể nào đó. Nó lớn hơn 100 lần so với Nanoseconds (Nano giây). Ví dụ  27/09/2013 23:30 PM sẽ được quy ra một số nguyên  long 64bit mà ta gọi là Ticks.

Demo:

To be continued . . .

Share

Happy Reading!

Xử Lý DateTime Trong C# – Phần 2

4

/

5

Oleh

Unknown

Oleh

Bravohex’S Blog: Xử Lý Datetime Trong C#

Phần này chúng ta tìm hiểu các phương thức so sánh, đối chiếu thời gian trong DateTime. Để lấy về kết quả True/False hoặc một cờ hiệu cụ thể của việc so sánh 2 khoảng thời gian.

+ Compare: Truyền vào hai giá trị của hai ngày kiểu DateTime, hàm này sẽ so sánh giá trị 1 vs 2 để đưa ra kết quả. Chỉ ba giá trị được trả về: 1, 0, -1 thể hiện ngày thứ nhất lớn hơn, bằng nhau, nhỏ hơn. + CompareTo: Phương thức này có hai cách dùng – Cách 1 phương thức này được giá trị datetime cụ thể sử dụng để so sánh với giá trị khác. – Cách 2 phương thức này được giá trị datetime cụ thể sử dụng để so sánh với đối tượng datetime khác được truyền vào. Cả 2 cách kết quả trả về cũng chỉ có ba giá trị như hàm Compare trên là: 1, 0, -1 + Equals: Trả về một kết quả True/False. Dùng để so sánh giữa hai ngày có bằng nhau không.

Phương thức sử dụng static chỉ được gọi thông qua lớp chứa nó và không thể gọi từ một đối tượng cụ thể nào. Bạn có thể tìm hiểu thêm Static keyword

1. Compare() – Đây là phương thứcstatic của DateTime. Trả về một giá trị kiểu Int, với 2 tham số truyền vào là hai giá trị datetime.

Demo: – Bạn có thể dùng các giá trị result để dùng cho các điều kiện, chẳng hạn in ra thông tin ngày nào lớn hơn hoặc bằng nhau …………………..

2. CompareTo()

– Phương thức này trả về kết quả kiểu Int, với 1 tham số truyền vào là giá trị datetime được khởi tạo trước đó hoặc một đối tượng DateTime. Nó chỉ khác với Compare chút xíu, kết quả trả về hoàn toàn như hàm so sánh Compare

Demo 1: Truyền vào giá trị khởi tạo trước

Demo 2: Truyền vào một đối tượng DT mới

3. Equals() – Trả về kết quả True nếu 2 ngày được so sánh bằng nhau và ngược lại là False . Ta cần một biến kiểu bool để get lấy giá trị này

Demo 1: Một ngày cụ thể gọi hàm equals, với tham số truyền vào là một ngày khác để so sánh.

Demo 2: Thay vì tham số truyền vào là giá trị thời gian được khởi tạo trước đó như trên, ta có thể truyền một đối tượng mới như sau:

Demo 3: Hàm equals() lúc này là hàm static. Và cũng có 2 cách truyền tham số, kiểu thứ nhất truyền vào 2 tham số khởi tạo từ trước, kiểu thứ hai truyền vào 2 đối tượng khởi tạo tại chỗ.

– Ở ví dụ trên, các phép sánh giữa 2 ngày bằng nhau hoặc khởi tạo thời gian cụ thể thì cho ra kết quả luôn chính xác là True, hoặc khác nhau là False. Trong ví dụ có giá trị:

Thì câu lệnh này có nghĩa là thời gian sẽ bằng thời gian của hệ thống tại thời điểm đó. Khác với câu lệnh:

Câu lệnh này chỉ lấy ra ngày tháng năm của ngày hiện tạo. Phần thời gian mặc định 12:00:00 AM

– Đối với lệnh Now nếu chương trình đọc xong lệnh thứ nhất chuyển qua lệnh thứ hai sẽ có độ trễ, nếu nhanh có thể không. Nên kết quả Result3 có thể là True hoặc False, không xác định. Đó là demo để so sánh thế, thực ra bình thường cũng không có ai so sánh thời gian hiện tại với hiện tại như thế cả.

Chung quy lại một điều phương thức Equals này nếu muốn chính xác bạn cần xác định các giá trị thời gian cần so sánh cần phải cụ thể, vì hàm này so sánh sâu tới giá trị nhỏ nhất mà C# hỗ trợ chỉ cần thay đổi rất nhỏ cũng thay đổi kết quả trả về. Nói lại, Ticks ở đây là giá trị được chuyển đổi từ Ngày Tháng cụ thể nào đó. Nó lớn hơn 100 lần so với Nanoseconds (Nano giây). Ví dụ 27/09/2013 23:30 PM sẽ được quy ra một số nguyên long 64bit mà ta gọi là Ticks. Demo:

To be continued . . .

Oleh Unknown

Hướng Dẫn Phân Biệt Day Và Date Trong Tiếng Anh

4.6

(92.86%)

14

votes

1. Day – /’dei/

1.1. Định nghĩa

Day – /’dei/ là một danh từ tiếng Anh, có nghĩa là “ngày, ban ngày”.

Ví dụ:

Are you free this day next week?

(Bạn có rảnh vào ngày này tuần sau không?)

The day that Lisa returned to Korea was May 30.

(Ngày Lisa trở về Hàn Quốc là ngày 30/5.)

1.2. Cách dùng Day trong tiếng Anh

Danh từ “day” trong tiếng Anh được sử dụng trong những trường hợp sau:

Cách dùng 1: “Day” là từ được sử dụng để nói về các “ngày trong tuần” như Monday, Tuesday, Wednesday,.. và còn được sử dụng trong câu hỏi về hỏi ngày trong tuần.

Ví dụ:

What day is Mike free next month? – On Friday.

(Mike rảnh vào ngày nào trong tháng tới? – Vào thứ Sáu.)

Which day is this today?

(Hôm nay là ngày nào?)

Cách dùng 2: Dùng để chỉ thời điểm ban ngày từ 0:00 AM đến 12: 00 AM

Ví dụ:

People work during the day and sleep at night.

(Con người làm việc vào ban ngày và ngủ vào ban đêm.)

I always get work done during the day.

Tôi luôn hoàn thành công việc trong ngày.)

Cách dùng 3: Dùng để nói về khoảng thời gian mà chúng ta dành ra để làm việc gì đó.

Ví dụ:

I completed this report in 7 days.

(Tôi hoàn thành báo cáo này trong 7 ngày.)

I have just been quarantined for 14 days in the hospital.

(Tôi vừa bị cách ly 14 ngày trong bệnh viện.)

[FREE]

Download Ebook Hack Não Phương Pháp –

Hướng dẫn cách học tiếng Anh thực dụng, dễ dàng cho người không có năng khiếu và mất gốc. Hơn 205.350 học viên đã áp dụng thành công với lộ trình học thông minh này. 

TẢI NGAY

1.3. Cụm từ thông dụng với Day

Cụm từ

Dịch nghĩa

Any day now

Mấy ngày tới

By day

Vào ban ngày

Day after day

Ngày qua ngày

Day and night

Cả ngày

Day off

Ngày nghỉ

In those days

Trong quá khứ

The days

Một quãng thời gian trong quá khứ

The other day

Một vài ngày trước đó

These days

Những ngày này

2.1. Định nghĩa

Date – /deɪt/ cũng là một danh từ trong tiếng Anh, mang nghĩa là “ngày tháng”.

Ví dụ:

What is the date today?

(Hôm nay là ngày bao nhiêu?)

What is your date of birth?

(Ngày sinh của bạn là gì?)

2.2. Cách dùng Date trong tiếng Anh

Ví dụ:

Cách dùng 1: “Date” là từ dùng để chỉ một ngày trong tháng.

The 13th of every month is a practical date for my school.

(Ngày 13 hàng tháng là ngày học thiết thực của trường tôi.)

My son’s date of birth is June 24.

(Con trai tôi sinh ngày 24 tháng 6)

Cách dùng 2: Nói về một cuộc hẹn hò hay mối quan hệ lãng mạn.

Ví dụ:

Mike asked me out on a date.

(Mike hẹn tôi đi chơi.)

Mary had a hot date.

(Mary đã có một buổi hẹn hò nóng bỏng.)

2.3. Cụm từ thông dụng với Date

Cụm từ

Dịch nghĩa

Out of date

lạc hậu, lỗi thời

Up to date

hiện đại

Date back to

có niên đại, có từ

A double date

Hẹn hò đôi

Date from

Từ ngày

Make a date

Hẹn hò

A blind date

Hẹn hò giấu mặt

At an early date

Vào một buổi sớm

Day và Date là đều có nghĩa là “ngày” tuy nhiên chúng được sử dụng trng các trường hợp khác nhau.

Day

Date

Chỉ ngày trong tuần

Chỉ một ngày trong tháng

Nói về ngày xa cũ

Dạng động từ chỉ một việc xảy về cái cũ. Ví dụ: Day back.

Nói về một lịch hẹn hò lãng mạn

Ví dụ:

In the old days, I only had 1 comic book.

(Ngày xưa mình chỉ có 1 cuốn truyện tranh.)

The story dates back to 5 days ago when Mike meets a poor girl.

(Câu chuyện bắt nguồn từ 5 ngày trước khi Mike gặp một cô gái nghèo.)

Comments

Cập nhật thông tin chi tiết về Hướng Dẫn Sử Dụng Date Và Time Trong C# trên website Channuoithuy.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!