Thêm một ngày javascript
Khi bạn viết mã để chỉ định một lượng thời gian, hãy sử dụng lớp hoặc phương thức đáp ứng tốt nhất nhu cầu của bạn. lớp Thời lượng, lớp Thời gian hoặc phương thức. Khoảng thời gian đo lượng thời gian sử dụng các giá trị dựa trên thời gian (giây, nano giây). Một Khoảng thời gian sử dụng các giá trị dựa trên ngày (năm, tháng, ngày) Show Ghi chú. Thời lượng của một ngày dài chính xác là 24 giờ. Khoảng thời gian một ngày, khi được thêm vào ZonedDateTime, có thể thay đổi tùy theo múi giờ. Ví dụ: nếu nó xảy ra vào ngày đầu tiên hoặc ngày cuối cùng của giờ mùa hè Khoảng thời gian phù hợp nhất trong các trường hợp đo thời gian dựa trên máy, chẳng hạn như mã sử dụng đối tượng Instant. Một đối tượng Duration được đo bằng giây hoặc nano giây và không sử dụng các cấu trúc dựa trên ngày như năm, tháng và ngày, mặc dù lớp này cung cấp các phương thức chuyển đổi thành ngày, giờ và phút. Khoảng thời gian có thể có giá trị âm nếu nó được tạo với điểm kết thúc xảy ra trước điểm bắt đầu Đoạn mã sau tính toán, tính bằng nano giây, khoảng thời gian giữa hai thời điểm Instant t1, t2; ... long ns = Duration.between(t1, t2).toNanos(); Đoạn mã sau thêm 10 giây vào Instant Instant start; ... Duration gap = Duration.ofSeconds(10); Instant later = start.plus(gap); Khoảng thời gian không được kết nối với dòng thời gian, trong đó nó không theo dõi múi giờ hoặc thời gian tiết kiệm ánh sáng ban ngày. Việc thêm Khoảng thời gian tương đương với 1 ngày vào ZonedDateTime dẫn đến chính xác 24 giờ được thêm vào, bất kể thời gian tiết kiệm ánh sáng ban ngày hoặc sự khác biệt về thời gian khác có thể dẫn đến ChronoUnitChronoUnit enum, được thảo luận trong The Temporal Package, xác định các đơn vị được sử dụng để đo thời gian. Đơn Vị Chrono. Phương pháp giữa hữu ích khi bạn muốn đo lượng thời gian chỉ trong một đơn vị thời gian, chẳng hạn như ngày hoặc giây. Phương thức giữa hoạt động với tất cả các đối tượng dựa trên thời gian, nhưng nó chỉ trả về số tiền trong một đơn vị. Đoạn mã sau tính toán khoảng cách, tính bằng mili giây, giữa hai dấu thời gian import java.time.Instant; import java.time.temporal.Temporal; import java.time.temporal.ChronoUnit; Instant previous, current, gap; ... current = Instant.now(); if (previous != null) { gap = ChronoUnit.MILLIS.between(previous,current); } ... Để xác định một lượng thời gian với các giá trị dựa trên ngày (năm, tháng, ngày), hãy sử dụng lớp Thời gian. Lớp Thời gian cung cấp nhiều phương thức lấy khác nhau, chẳng hạn như , và , để bạn có thể trích xuất lượng thời gian từ khoảng thời gian Tổng khoảng thời gian được đại diện bởi cả ba đơn vị cùng nhau. tháng, ngày và năm. Để trình bày lượng thời gian được đo bằng một đơn vị thời gian, chẳng hạn như ngày, bạn có thể sử dụng ChronoUnit. giữa phương pháp Đoạn mã sau báo cáo tuổi của bạn, giả sử rằng bạn sinh ngày 1 tháng 1 năm 1960. Lớp Period dùng để xác định thời gian theo năm, tháng, ngày. Khoảng thời gian tương tự, tính theo tổng số ngày, được xác định bằng cách sử dụng ChronoUnit. giữa phương thức và được hiển thị trong ngoặc đơn LocalDate today = LocalDate.now(); LocalDate birthday = LocalDate.of(1960, Month.JANUARY, 1); Period p = Period.between(birthday, today); long p2 = ChronoUnit.DAYS.between(birthday, today); System.out.println("You are " + p.getYears() + " years, " + p.getMonths() + " months, and " + p.getDays() + " days old. (" + p2 + " days total)"); Mã tạo ra đầu ra tương tự như sau You are 53 years, 4 months, and 29 days old. (19508 days total) Để tính xem còn bao lâu nữa là đến sinh nhật tiếp theo của bạn, bạn có thể sử dụng đoạn mã sau từ ví dụ LocalDate birthday = LocalDate.of(1960, Month.JANUARY, 1); LocalDate nextBDay = birthday.withYear(today.getYear()); //If your birthday has occurred this year already, add 1 to the year. if (nextBDay.isBefore(today) || nextBDay.isEqual(today)) { nextBDay = nextBDay.plusYears(1); } Period p = Period.between(today, nextBDay); long p2 = ChronoUnit.DAYS.between(today, nextBDay); System.out.println("There are " + p.getMonths() + " months, and " + p.getDays() + " days until your next birthday. (" + p2 + " total)"); Mã tạo ra đầu ra tương tự như sau There are 7 months, and 2 days until your next birthday. (216 total) Những tính toán này không tính đến sự khác biệt về múi giờ. Ví dụ: nếu bạn sinh ra ở Úc, nhưng hiện đang sống ở Bangalore, điều này ảnh hưởng một chút đến việc tính tuổi chính xác của bạn. Trong tình huống này, hãy sử dụng một Khoảng thời gian kết hợp với lớp ZonedDateTime. Khi bạn thêm một khoảng thời gian vào một ZonedDateTime, sự khác biệt về thời gian được quan sát Chương này giới thiệu các khái niệm, đối tượng và hàm được sử dụng để làm việc và thực hiện các phép tính bằng số và ngày trong JavaScript. Điều này bao gồm việc sử dụng các số được viết bằng nhiều cơ số khác nhau bao gồm thập phân, nhị phân và thập lục phân, cũng như việc sử dụng đối tượng toàn cầu 8 để thực hiện nhiều phép toán khác nhau trên các sốTrong JavaScript, các số được triển khai ở định dạng nhị phân 64 bit có độ chính xác kép IEEE 754 (i. e. , một số trong khoảng từ ±2^−1022 đến ±2^+1023 hoặc khoảng ±10^−308 đến ±10^+308, với độ chính xác số là 53 bit). Các giá trị số nguyên lên tới ±2^53 − 1 có thể được biểu diễn chính xác Ngoài khả năng biểu diễn số dấu phẩy động, kiểu số còn có ba giá trị tượng trưng. 9 0, 1 0, và 3 (không phải là số)Xem thêm các kiểu dữ liệu và cấu trúc JavaScript để biết ngữ cảnh với các kiểu nguyên thủy khác trong JavaScript Bạn có thể sử dụng bốn loại chữ số. thập phân, nhị phân, bát phân và thập lục phân
Lưu ý rằng các chữ số thập phân có thể bắt đầu bằng số 0 ( 4) theo sau là một chữ số thập phân khác, nhưng nếu mỗi chữ số sau số đầu tiên 4 nhỏ hơn 8, thì số đó sẽ được phân tích cú pháp dưới dạng số bát phânCú pháp số nhị phân sử dụng số 0 đứng đầu, theo sau là chữ cái Latinh viết thường hoặc viết hoa "B" ( 6 hoặc 7). Nếu các chữ số sau 6 không phải là 0 hoặc 1, thì 9 sau đây sẽ bị ném. "Thiếu chữ số nhị phân sau 0b"
Cú pháp tiêu chuẩn cho các số bát phân là thêm tiền tố vào trước chúng bằng 0. Ví dụ
Ngoài ra còn có một cú pháp kế thừa cho các số bát phân - bằng cách thêm số 0 vào trước số bát phân. 1 và 2. Nếu các chữ số sau 4 nằm ngoài phạm vi từ 0 đến 7, thì số đó sẽ được hiểu là số thập phân
Chế độ nghiêm ngặt cấm cú pháp bát phân này Cú pháp số thập lục phân sử dụng số 0 đứng đầu, theo sau là chữ cái Latinh viết thường hoặc viết hoa "X" ( 4 hoặc 5). Nếu các chữ số sau 0x nằm ngoài phạm vi (0123456789ABCDEF), thì 9 sau đây sẽ bị ném. "Số nhận dạng bắt đầu ngay sau chữ số"
Đối tượng 7 tích hợp sẵn có các thuộc tính cho hằng số, chẳng hạn như giá trị lớn nhất, không phải là số và vô cùng. Bạn không thể thay đổi giá trị của các thuộc tính này và bạn sử dụng chúng như sau
Bạn luôn đề cập đến một thuộc tính của đối tượng 7 được xác định trước như được hiển thị ở trên và không phải là thuộc tính của đối tượng 7 mà bạn tự tạoBảng sau đây tóm tắt các thuộc tính của đối tượng 7Thuộc tínhMô tả 1Số dương lớn nhất có thể biểu thị ( 2) 3Số dương nhỏ nhất có thể biểu thị ( 4) 5Giá trị đặc biệt "không phải là số" 6Giá trị vô hạn âm đặc biệt; . Tương tự như hàm toàn cầu 8. 9Phân tích đối số chuỗi và trả về một số nguyên của cơ số hoặc cơ số đã chỉ định. Tương tự như hàm toàn cầu 0. 1Xác định xem giá trị đã truyền có phải là một số hữu hạn hay không. 2Xác định xem giá trị được truyền có phải là số nguyên hay không. 3Xác định xem giá trị đã truyền có phải là 3 hay không. Phiên bản mạnh mẽ hơn của bản gốc toàn cầu 5. 6Xác định xem giá trị được cung cấp có phải là một số nguyên an toàn hay khôngNguyên mẫu 7 cung cấp các phương thức truy xuất thông tin từ các đối tượng 7 ở các định dạng khác nhau. Bảng dưới đây tóm tắt các phương pháp của 9Phương thứcMô tả 0Trả về một chuỗi đại diện cho số theo ký hiệu hàm mũ. 1Trả về một chuỗi đại diện cho số trong ký hiệu điểm cố định. 2Trả về một chuỗi biểu thị số với độ chính xác đã chỉ định trong ký hiệu điểm cố địnhĐối tượng 8 tích hợp có các thuộc tính và phương thức cho các hàm và hằng số toán học. Ví dụ, thuộc tính 5 của đối tượng 8 có giá trị là pi(3. 141…), mà bạn sẽ sử dụng trong một ứng dụng dưới dạngCó thể bạn quan tâm
Tương tự, các hàm toán học tiêu chuẩn là các phương thức của 8. Chúng bao gồm các hàm lượng giác, logarit, hàm mũ và các hàm khác. Ví dụ, nếu bạn muốn sử dụng hàm lượng giác sin, bạn sẽ viết
Lưu ý rằng tất cả các phương thức lượng giác của 8 lấy đối số theo đơn vị radianBảng dưới đây tóm tắt các phương thức của đối tượng 8Phương pháp của 8Phương phápMô tả 0Giá trị tuyệt đối 1, 2, 3Hàm lượng giác chuẩn; . 4, 5, 6, 7Các hàm lượng giác nghịch đảo; . 8, 9, 0Hàm hyperbolic; . 1, 2, 3Hàm hypebol nghịch đảo; 4, 5, 6, 7, 8, 9, 00Hàm số mũ và logarit. 01, 02Trả về số nguyên lớn nhất/nhỏ nhất nhỏ hơn/lớn hơn hoặc bằng một đối số. 03, 04Trả về giá trị tối thiểu hoặc tối đa (tương ứng) của một danh sách các số được phân tách bằng dấu phẩy làm đối số. 05Trả về một số ngẫu nhiên trong khoảng từ 0 đến 1. 06, 07, 08, Hàm làm tròn và cắt bớt. 09, 10, 11Căn bậc hai, căn bậc ba, Căn bậc hai của tổng các đối số bình phương. 12Dấu của một số, cho biết số đó là số dương, số âm hay số không. 13, 14Số bit 0 đứng đầu trong biểu diễn nhị phân 32 bitKết quả của phép nhân 32 bit giống như C của hai đối số Không giống như nhiều đối tượng khác, bạn không bao giờ tạo một đối tượng 8 của riêng mình. Bạn luôn sử dụng đối tượng 8 tích hợpMột thiếu sót của các giá trị số là chúng chỉ có 64 bit. Trong thực tế, do sử dụng mã hóa IEEE 754, chúng không thể biểu diễn chính xác bất kỳ số nguyên nào lớn hơn 5 (tức là 253 - 1). Để giải quyết nhu cầu mã hóa dữ liệu nhị phân và để tương tác với các ngôn ngữ khác cung cấp số nguyên rộng như 18 (số nguyên 64 bit) và 19 (số nguyên 128 bit), JavaScript cũng cung cấp một loại dữ liệu khác để biểu diễn các số nguyên lớn tùy ý. 20Một BigInt có thể được định nghĩa là một số nguyên có hậu tố là 21
BigInts cũng có thể được xây dựng từ các giá trị số hoặc giá trị chuỗi bằng cách sử dụng hàm tạo 20 0Về mặt khái niệm, BigInt chỉ là một chuỗi bit dài tùy ý mã hóa một số nguyên. Bạn có thể thực hiện bất kỳ phép tính số học nào một cách an toàn mà không làm mất đi độ chính xác hoặc tràn/thừa 1So với các số, các giá trị BigInt mang lại độ chính xác cao hơn khi biểu diễn các số nguyên lớn; . Ví dụ: phép chia sẽ làm tròn thành 0 2Không thể sử dụng các hàm 8 trên các giá trị BigInt. Có một đề xuất mở để làm quá tải một số hàm 8 như 25 để cho phép các giá trị BigIntViệc chọn giữa BigInt và số tùy thuộc vào trường hợp sử dụng và phạm vi đầu vào của bạn. Độ chính xác của các con số đã có thể đáp ứng hầu hết các tác vụ hàng ngày và BigInts phù hợp nhất để xử lý dữ liệu nhị phân Đọc thêm về những gì bạn có thể làm với các giá trị BigInt trong phần này hoặc tham khảo BigInt JavaScript không có kiểu dữ liệu ngày tháng. Tuy nhiên, bạn có thể sử dụng đối tượng 26 và các phương thức của nó để làm việc với ngày và giờ trong ứng dụng của mình. Đối tượng 26 có một số lượng lớn các phương thức để thiết lập, nhận và thao tác ngày tháng. Nó không có bất kỳ thuộc tính nàoJavaScript xử lý ngày tương tự như Java. Hai ngôn ngữ có nhiều phương thức ngày giống nhau và cả hai ngôn ngữ đều lưu trữ ngày dưới dạng số mili giây kể từ ngày 1 tháng 1 năm 1970, 00. 00. 00, với Dấu thời gian Unix là số giây kể từ ngày 1 tháng 1 năm 1970, 00. 00. 00 Phạm vi đối tượng 26 là -100.000.000 ngày đến 100.000.000 ngày so với ngày 01 tháng 1 năm 1970 UTCĐể tạo một đối tượng 26 3trong đó 30 là tên của đối tượng 26 được tạo; Gọi 26 mà không có từ khóa 33 trả về một chuỗi đại diện cho ngày và giờ hiện tại 34 trong cú pháp trước có thể là bất kỳ cú pháp nào sau đây
Các phương pháp đối tượng 26 để xử lý ngày và giờ thuộc các danh mục rộng này
Với các phương thức "get" và "set", bạn có thể nhận và đặt giây, phút, giờ, ngày trong tháng, ngày trong tuần, tháng và năm riêng biệt. Có một phương thức 44 trả về ngày trong tuần, nhưng không có phương thức 45 tương ứng, vì ngày trong tuần được đặt tự động. Các phương thức này sử dụng số nguyên để biểu diễn các giá trị này như sau
Ví dụ: giả sử bạn xác định ngày sau 4Sau đó, 46 trả về 11 và 47 trả về 1995Các phương pháp 48 và 49 rất hữu ích để so sánh ngày tháng. Phương thức 48 trả về số mili giây kể từ ngày 1 tháng 1 năm 1970, 00. 00. 00 cho một đối tượng 26Ví dụ: đoạn mã sau hiển thị số ngày còn lại trong năm hiện tại 5Ví dụ này tạo một đối tượng 26 tên là 53 chứa ngày hôm nay. Sau đó, nó tạo một đối tượng 26 có tên là 55 và đặt năm thành năm hiện tại. Sau đó, sử dụng số mili giây mỗi ngày, tính toán số ngày giữa 53 và 55, sử dụng 48 và làm tròn thành số ngày nguyênPhương thức 59 rất hữu ích để gán các giá trị từ chuỗi ngày cho các đối tượng 26 hiện có. Ví dụ: đoạn mã sau sử dụng 59 và 49 để gán giá trị ngày cho đối tượng 63 6Trong ví dụ sau, hàm 64 trả về thời gian ở định dạng đồng hồ kỹ thuật số 7Đầu tiên, hàm 65 tạo một đối tượng 26 mới có tên là 67; . Sau đó, gọi các phương thức 68, 69 và 70 gán giá trị của giờ, phút và giây hiện tại cho 71, 72 và 73Các câu lệnh sau đây xây dựng một giá trị chuỗi dựa trên thời gian. Câu lệnh đầu tiên tạo một biến 74. Giá trị của nó là 75, là 71 trong hệ thống 12 giờ. Sau đó, nếu giờ là 4, giờ đó sẽ được gán lại cho 78, do đó nửa đêm và trưa được hiển thị là 79 thay vì 80Câu lệnh tiếp theo nối một giá trị 72 vào 74. Nếu giá trị của 72 nhỏ hơn 10, biểu thức điều kiện sẽ thêm một chuỗi có số 0 đứng trước; . Sau đó, một câu lệnh nối thêm giá trị giây vào 74 theo cách tương tựCuối cùng, một biểu thức điều kiện nối thêm "P. M. " đến 74 nếu 71 là 12 hoặc lớn hơn; nếu không, nó sẽ thêm "A. M. " đến 74 |