不同語言,對於addMonths 認知差異,以閏年閏月為例

小小問題,大大深奧

一個簡單的加一個月,竟然可以引起這麼大的問題,為什麼二月底加一個月,卻不是三月底,而是3/29,這樣是少加了幾天呢?還是只是認知問題?

總有人反映,這樣就不是加1個月了阿!但是月份+1、還是天數+30,這又是不同的認知了。

下面讓我們繼續探討下去~

假設

開始日期:2020/02/29 分別用不同語言or語法,相加1個月各得到結論。

  1. C#:2020/02/29 + 1個月 = 2020/03/29
  2. SQLite:2020/02/29 + 1個月 = 2020/03/29
  3. SQLServer:2020/02/29 + 1個月 = 2020/03/29
  4. Oracle:2020/02/29 + 1個月 = 2020/03/31

上述列有的加到月底,有個加一個月的同一天,是認知問題還是?

C

DateTime date = new DateTime(2020, 2, 29);
Console.WriteLine(date);
Console.WriteLine(date.AddMonths(3).ToString("d"));

C#

SQLite

select date('2020-02-29'),date('2020-02-29','+1 month')

SQLite

SQLServer

select '2020-02-29',DATEADD(m,1,'2020-02-29')

SQLServer

Oracle

select add_months(to_date('20200229', 'yyyymmdd'),1) from dual;

Oracle

還有各種不同的語言,也歡迎各位在下方回覆討論。

[C#]TQC+ 物件導向程式語言認證指南 C#

[TOC]

操作題檔案下載

操作題程式碼下載

第一類

101. 文字輸入與文數字轉換


102. for 迴圈與平均值計算


103. 成績分組


104. 計算折扣


105. 蒐尋短字串


106. 付款方式


107. 質數


108. 最大公因數


109. 迴圈運算


110. 函數多載


第二類

2-201 數列排序


2-202 成績計算


2-203 文化語言資訊


2-204 賓果遊戲



2-205 壓所與解壓縮檔案


2-206 加解密


2-207 轉檔程式


2-208 圖檔分割


2-209 圖檔讀取


2-210 檔案同步


第三類

3-301 物件比較


3-302 成績查詢


3-303 計算成本


3-304 本利和



3-305 本利和(使用繼承)




3-306 樂透號碼(使用繼承)


3-307 樂透號碼(介面實作




3-308 產品庫存


3-309 產品數量計算


3-310 物件生命週期


第四類

4-401 平均成績


4-402 綜合所得稅


CLASS TAX:ITAX

TaxCalculator.cs

Program.cs

4-403 泡沫排序法


BubbleSort.cs

4-404 二元數


4-405 一元二次方程式


4-406 費式數列


4-407 撲克牌洗牌


4-408 信用卡檢查


4-409 物件機制


4-410 快速排序法


[網賺分享]ONEPTP網頁流量分享掛機收入~20200109更新

ONEPTP教學開始

說明

官方說法:基本上就是幫網站增加流量賺錢,可以使用流量交換的軟體或網站(流量精靈、流量寶、hitleapotohits10hitsbighits4u),來刷取PTP連結,賺取收益。

關於網頁流量交換軟體,會再分類說明

本站有支付宝(AliPay),QQ钱包,和比特币(Bitcoin)钱包(至少0.001比特币),狗狗币(DogeCoin)钱包,PerfectMoney和WebMoney六种支付方式。
請大家注意,已經沒有PayPal搂。

註冊教學

請至這裡註冊:http://www.oneptp.com/reg.php?u=500809
網站主頁

閱讀全文〈[網賺分享]ONEPTP網頁流量分享掛機收入~20200109更新〉

CentOS之frp Server設定

frp執行檔案下載:下載位置

#使用wget、vim 指令,安裝
yum install -y wget vim 

使用版本:v0.32.1
下載解壓縮

cd /opt/
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
tar zxvf frp_0.32.1_linux_amd64.tar.gz
ls -ltr

獨立一個目錄,這邊是放在/etc底下

mkdir /etc/frps
cd /opt/frp_0.32.1_linux_amd64
cp frps /etc/frps/frps
cp frps.ini /etc/frps/frps.ini
cd /etc/frps

設定frps.ini

vim /etc/frps/frps.ini
[common]
# tunnel port通信管道
bind_port = 2210
bind_udp_port = 2211
kcp_bind_port = 2210
privilege_mode = true
privilege_token =123
# 監控網頁位置、PORT、帳號、密碼
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
# LOG 記錄
log_file = /var/log/frps.log
log_level = info
log_max_days = 30
# 連線上限
max_pool_count = 20
# 是否啟用多線程執行
# 不再需要為每一個用户創立一個連接,讓連接建立延遲降低
tcp_mux = true
max_ports_per_client = 0
authentication_timeout = 900

:wq #存檔離開

設定 systemctl 開啟啟動服務
ubuntu位置:/lib/systemd/system/frps.service
CentOS位置:/etc/systemd/system/frps.service

設定開機自己啟動

vim /etc/systemd/system/frps.service
[Unit]
Description=frps
After=network.target

[Service]
ExecStart=/etc/frps/frps -c /etc/frps/frps.ini 

[Install]
WantedBy=multi-user.target

#存檔離開
:wq

# 啟動測試
systemctl start frps.service
# 查看狀態
systemctl status frps.service
# 開機自己啟動
systemctl enable frps.service

IIS 相關設定

今天在架設內部網站時遇到兩個問題:
1、 在IIS上新增站台完成後,在Server上可以瀏覽,但是把連結給同仁卻不行。
2、 首頁不是根目錄的Login頁面。

問題1解決方法:

確認防火牆是否有新增該網站需要用到的Port,如果沒有就得要新增了。

步驟如下:
閱讀全文〈IIS 相關設定〉

[C#]Entity Framework 5 增加TimeOut時間

Entity Framework 5 如何增加 DB連線的TimeOut時間,設定方式如下

需要針對進來的context 去做設定,網路上很多寫法,試了很久,才找到方式。

(this._context as System.Data.Entity.Infrastructure.IObjectContextAdapter).ObjectContext.CommandTimeout = 時間;

參考資料:
Set database timeout in Entity Framework

[C#]當WebService 需要多載時的方法,需要注意MessageName

.NET的WebService是一個可以讓別人從Web參考的存取資料的方式;這算是一個古老的技術,早從.Net 1.1時代就開始了,由於傳遞的方式是走SOAP,傳遞格視為XML,所以資料容量比較大,直到現今已經到JSON傳遞資料的時代,WebService還是有人使用,畢竟還是有老舊系統存在的使用必要。
閱讀全文〈[C#]當WebService 需要多載時的方法,需要注意MessageName〉

[C#] 如何讓Linq + entity framework 可以達到with(nolock)

到底Linq對SQL做了什麼??

現在大部分人都使用linq+entity framework 去資料庫取得資料,但實際上在對資料庫存取SQL語法為何,確認大多數人並不了解的。

建議可以使用LINQPad 這套程式來去測試看看,避免不必要的語法造成資料的Lock,一個常用的資料表Lock會影響到其他作業的進行,甚至有可能造成TimeOut,而發出告警。
閱讀全文〈[C#] 如何讓Linq + entity framework 可以達到with(nolock)〉

[分享]網站分享,想要學程式的人有福了

想要學程式的人有福了

網路上有人整理線上學習程式的網站,也就是線上學習程式語言,讓想要學習的人可以自學並達到想要了解的地步。

學習語言有個前提,相信大家都了解,程式語言他是英文所產生出來的,而推薦自學的網站,大部分都來自國外,相對的英文這個語言希望大家不排斥,這樣才可能進行下一步的動作。
想當初,我也是一頭霧水,但真正努力去了解後,程式進步了英文的閱讀也進步了,所以不排斥真的是心理障礙的一大門檻;太多人在面對自己討厭的事物總是選擇逃避,但真正面對後才發現其實這一切並不恐怖
現在大家可以點選連結,進去了解並學習。

希望大家都可以學習到想要學習的語言,也希望大家功力大增~~

參考資料:
自學程式設計學習資源懶人包