如何寫程式計算時間和日期的差距? 2023 年 1 月 24 日 Magic Len 研究分享、 Rust、 演算法、 JavaScript 有時候我們會需要寫程式去計算兩個時間點的差距,以求得年齡、經過了多少的時間,或是否還在某個期限之內等等的資訊。日(day)與時、分、秒的差距很好算,因為它們是固定的時間(不考慮閏秒)。但年、月就不一樣了,一個月可能有28至31天,一年可能有365或366天,我們無法直接將兩個時間點(的時間戳記)相減之後去除上一個固定的單位(例如拿相差的秒數去除以2592000秒)來算出隔了多少年、月,硬是要這麼算... 繼續閱讀
如何寫程式判斷閏年並計算一個月有幾天? 2023 年 1 月 3 日 Magic Len Go、 Java、 Rust、 JavaScript 我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式,以及這兩種年份是差在前者的二月有28天,後者則是有29天。所以平年整年一共有365天;閏年整年一共有366年。這是身為一個地球人的基本常識,但在小學的時候,老師可能只會告訴我們把西元年份的數字除以4,如果可以整除,那麼這年就是閏年,否則是平年。老師說的也不能說是錯的,只是不太完整,實際上,閏年的正確判斷方式... 繼續閱讀
如何寫程式處理中華民國的身份證字號? 2022 年 11 月 22 日 Magic Len 研究分享、 Rust、 JavaScript 中華民國的「身份證字號」,正式名稱為「國民身分證統一編號」,是由一個代表出生地的大寫英文字母加上九個數字所組成。雖然《戶籍法》第五十七條第一項規定「年滿十四歲者,應申請初領國民身分證;未滿十四歲者,得申請發給」,但國民就算沒有國民身份證,在出生之後報戶口就會有身份證字號了。當然,台灣不是只有本地國民而已,也存在著他國國籍的人,這類人所使用的相關編號,為了能夠方便在現有的系統中使用,已於西元2021... 繼續閱讀
寫程式算階乘,關於階乘的三兩事 2022 年 10 月 27 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 正整數的階乘(Factorial)是小於或等於該數的所有正整數的乘積,若正整數為N,用N!來表示N的階乘。至於0!是階乘的特例,它被定義為1。階乘的運算具有遞迴(recursion)概念,常作為學習程式邏輯的材料,而這篇文章將會說明階乘相關的程式計算。 繼續閱讀
如何寫程式來做等值的貨幣或是物品的數量換算? 2022 年 7 月 28 日 Magic Len 研究分享、 Java、 數學邏輯、 Rust、 JavaScript 不同國家有不同的貨幣流通,不同的貨幣也會有不同的價值。其實也不只貨幣,任何物品,無論實體的或是虛擬的都一樣,只要價值可以被衡量,就可以被等值換算。講到錢就傷感情,以蘋果和橘子來舉例好了,假設2顆蘋果等值於3粒橘子,那麼8顆蘋果就會等值於12粒橘子。 繼續閱讀
如何判斷兩個浮點數是否相等?是否能整除?相除後餘數是多少? 2022 年 7 月 21 日 Magic Len 研究分享、 Java、 Rust、 演算法、 JavaScript 使用電腦去進行浮點數運算的時候,在某些條件下會出現顯而易見的誤差,而這樣的誤差,就會導致與浮點數有關的計算或是邏輯判斷出現問題。 繼續閱讀
如何用Rust程式語言計算字詞數量? 2022 年 5 月 26 日 Magic Len Rust Rust的字串是使用UTF-8編碼的,如果直接使用「str」或是「String」的「len」方法,會得到UTF-8資料的位元組的數量,而非字元數。因為在UTF-8編碼下,一個字元不一定是一個位元組,例如「4」會被編碼成「[52]」;「ß」會被編碼成「[195, 159]」;「中」會被編碼成「[228, 184, 173]」;「𩸽」(ㄌㄨㄥˇ)會被編碼成「[240, 169, 184, 189]」。... 繼續閱讀
如何使用Rust程式語言一邊讀取UTF-8資料一邊進行驗證? 2022 年 5 月 19 日 Magic Len Rust 在進行軟體開發的時候,我們可能會需要讓程式從外部讀取UTF-8資料再轉成程式語言內建的字串型別。其實UTF-8資料不必在完全讀取完後才去驗證其正確性,一邊讀取一邊驗證才是比較有效率的作法。 繼續閱讀
如何使用Rust程式語言將字串安全地寫入網址中? 2022 年 5 月 17 日 Magic Len Rust 在進行軟體開發的時候,可能會需要將使用者輸入的資料插入至網址(URL)中,但URL能夠使用的字元是有限制的,錯誤格式的URL有機會使得HTTP客戶端在訪問URL資源時出現問題,也可能會導致透過URL來傳遞的參數有誤。為了讓URL可以傳遞任意字元的資料,對於不合法的字元,我們需要將其進行編碼。例如在網址的查詢(Query)部份(「?」之後的部份),如果要在查詢的參數值中使用「&」字元,就不能直接使用... 繼續閱讀
如何在Rust程式專案中安全地使用外部或是專案目錄下的檔案? 2022 年 5 月 12 日 Magic Len Rust 在開發程式的時候難免會需要在程式中引入外部的檔案,為了方便管理我們也常會將這些檔案放置在程式專案目錄下。然而在程式碼撰寫程式路徑於執行階段讀取檔案時,檔案路徑的正確性需要等到執行階段的時候才會知道,就算寫錯了而找不到這個檔案,程式專案也是能成功通過編譯,這就會使得程式在執行階段有出現問題的可能。 繼續閱讀