如何寫程式計算時間和日期的差距? 2023 年 1 月 24 日 Magic Len 研究分享、 NodeJS、 Rust、 演算法 有時候我們會需要寫程式去計算兩個時間點的差距,以求得年齡、經過了多少的時間,或是否還在某個期限之內等等的資訊。日(day)與時、分、秒的差距很好算,因為它們是固定的時間(不考慮閏秒)。但年、月就不一樣了,一個月可能有28至31天,一年可能有365或366天,我們無法直接將兩個時間點(的時間戳記)相減之後去除上一個固定的單位(例如拿相差的秒數去除以2592000秒)來算出隔了多少年、月,硬是要這麼算... 繼續閱讀
如何寫程式判斷閏年並計算一個月有幾天? 2023 年 1 月 3 日 Magic Len Go、 Java、 NodeJS、 Rust 我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式,以及這兩種年份是差在前者的二月有28天,後者則是有29天。所以平年整年一共有365天;閏年整年一共有366年。這是身為一個地球人的基本常識,但在小學的時候,老師可能只會告訴我們把西元年份的數字除以4,如果可以整除,那麼這年就是閏年,否則是平年。老師說的也不能說是錯的,只是不太完整,實際上,閏年的正確判斷方式... 繼續閱讀
如何讓 JavaScript 程式等待(睡眠)一段時間? 2022 年 12 月 27 日 Magic Len 研究分享、 NodeJS 雖然在撰寫程式的時候,在大部份的情況下我們都想要讓程式執行速度愈快愈好。但有時候在寫測試程式或是爬蟲時,我們會希望讓程式等待一段時間再繼續執行,以模擬I/O延遲或是真人操作延遲的效果。不過JavaScript並沒有直接提供讓執行緒睡眠(sleep)的功能,要怎麼模擬出sleep函數呢? 繼續閱讀
JavaScript到底會把哪些字元當作是空白字元? 2022 年 12 月 15 日 Magic Len 研究分享、 NodeJS JavaScript可以使用正規表示式的「\s」來匹配空白字元,但究竟有哪些字元會被當作空白字元呢?在JavaScript中,全形空白「 」也算是空白字元嗎?這篇文章將會給各位解答。 繼續閱讀
在Java和JavaScript中,字串的字數就等於字元數量嗎?錯! 2022 年 12 月 13 日 Magic Len 研究分享、 Java、 NodeJS 在Java和JavaScript中,我們經常會使用字串(String)提供的「length」成員(member)來抓取這個字串的字數。由於Java和JavaScript並不像Rust或是Golang程式語言這樣會直接抓到字串在經過編碼之後的位元組數量,而是會得到字元的數量,所以我們很直覺地就會在Java或JavaScript用這樣的方式來計算字串的字數。 繼續閱讀
JavaScript 要如何複製物件? 2022 年 12 月 8 日 Magic Len 研究分享、 NodeJS 在寫JavaScript程式的時候經常看到一些奇妙的程式碼被用來處理物件的複製,這篇文章會列舉筆者看到的一些作法,並提供較好的作法給大家參考。 繼續閱讀
如何寫程式畫出正六邊形的蜂巢狀網格? 2022 年 8 月 23 日 Magic Len 研究分享、 演算法 所謂的密鋪(tessellation)是用一種或多種平面形狀去填滿一個更大的平面。用正六邊形(regular hexagon)來密鋪成網格(grid),會比用矩形密鋪還來得更複雜,造成更藝術的視覺效果。那麼要如何寫程式來畫出這個複雜的正六邊形網格呢? 繼續閱讀
如何寫程式畫出正多邊形? 2022 年 8 月 18 日 Magic Len 程式設計、 研究分享、 演算法 N邊形,有N個頂點、N個邊。每個邊都是由兩個頂點連線組成,因此只要找到多邊形的各頂點座標,就可以輕易地連線畫出多邊形了!而所謂的正多邊形,它的邊都是等長的,且任意相鄰兩邊之間所形成的夾角也都是相等的。 繼續閱讀
如何使用Rust程式語言來產生數字分頁導覽列? 2020 年 11 月 10 日 Magic Len NodeJS、 Rust 在製作網頁或是應用程式的圖形使用者介面時,如果需要顯示比較大量的資料,通常製作「換頁」、「分頁」功能。但是若是做了這樣的功能,就必須要讓使用者能夠有方法進行「跳頁」的動作。要讓使用者能夠在圖形介面上進行跳頁,比較簡單的方式就是弄個下拉式選單把所有頁碼列出來讓使用者選,或者乾脆放上一個文字輸入方塊直接讓使用者自行輸入要查詢的頁碼。當然,比較潮的方式還是弄一個數字分頁導覽列(Pagination Ba... 繼續閱讀
如何在Webpack中使用TypeScript? 2020 年 1 月 14 日 Magic Len NodeJS Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外,也還能透過TypeScript的載入器(loader)來編譯並打包TypeScript程式碼。 繼續閱讀