日本在5月1日改元,自此展開了令和年代,所有的公家機關、政府以及法律文書等等,上頭的年份也都全改換成「令和○年○月○日」。現在問題來了,「令和○年」這個○裡,你該填什麼呢?1,200年來的日本歷史告訴你,要填「令和元年」。欸?不是令和一年嗎?如果填一不行嗎?
1,200年前寫就的《日本書紀》裡有一句紀載:「大化元年」。西元645年開始的大化年代,開始將改元後的第一年稱作「元年」,在此之前大多稱作「○○天皇元年」──也就是稱呼年號時還要你記得天皇老子的意思。但無論如何,元年這個用法是一樣的,年份可能還要更往前推。
往後元號(年號)的規範越來越多,像是「一世一元制」──天皇在位時不得更換元號,但是元年這個用法從來都沒有改變,因此後來像是明治元年、大正元年、昭和元年等等用法也持續地流傳下來。
有趣的是,元年的稱呼似乎沒有任何法律規範,而是以一種社會慣習的方式被沿用著。但是到了昭和年代,法務省在改元成為平成時,頒布了一件戶籍相關的政令:宣布以後各種事務使用的元號將改為平成,並且(就是這個並且),平成第一年將稱為平成元年。
而就在今年4月1日,相似的政令也公布了,「國家預算會使用到的會計年度名稱等等,自改元日之後今年度所有資料均須改為『令和元年度』」。
對我們來說,這也許是很新奇的一件事,國家改換元號後的第一年會被稱作元年。「元年」不再是政府官員拿來自嗨的詞語──啥米AI元年、啥米雲端元年三小的──而是一個在大至政府運行文書、民間契約、小至規費書信上被頻繁使用的名詞。
但換個角度,如今社會已經很習慣使用阿拉伯數字,如果我在賣房合約上把令和元年寫作令和1年會不會有事呢?答案是不會,律師解釋因為合約內容代表著當事雙方的合意,只要合約內容沒有偽造變動,合約本身就是正當合法的,不管是使用元年或1年,只要當事雙方都認同就可以。簽下去以後,這份合約並不會因為你寫元年或1年而有影響。
這樣看來還好,那麼,元年的稱呼對誰會很頭痛呢?我能想到的就是做牛做馬的資訊業了,請各位還在處理i18n的朋友們要注意嘍~~~如果需要在頁面上顯示元號的朋友們可能要小心這個從int轉str的小麻煩──我好久沒寫程式了XD。
對寫文章的人來說,這也許是很重要的小常識:從今起至年底,就是日本的「令和元年」,千萬別寫錯啦──寫錯雖然不會造成理解錯誤,但這並不是日本社會文化中的常用稱呼。
程式int意思 在 龍貓大王通信 Facebook 的最讚貼文
日本在5月1日改元,自此展開了令和年代,所有的公家機關、政府以及法律文書等等,上頭的年份也都全改換成「令和○年○月○日」。現在問題來了,「令和○年」這個○裡,你該填什麼呢?1,200年來的日本歷史告訴你,要填「令和元年」。欸?不是令和一年嗎?如果填一不行嗎?
1,200年前寫就的《日本書紀》裡有一句紀載:「大化元年」。西元645年開始的大化年代,開始將改元後的第一年稱作「元年」,在此之前大多稱作「○○天皇元年」──也就是稱呼年號時還要你記得天皇老子的意思。但無論如何,元年這個用法是一樣的,年份可能還要更往前推。
往後元號(年號)的規範越來越多,像是「一世一元制」──天皇在位時不得更換元號,但是元年這個用法從來都沒有改變,因此後來像是明治元年、大正元年、昭和元年等等用法也持續地流傳下來。
有趣的是,元年的稱呼似乎沒有任何法律規範,而是以一種社會慣習的方式被沿用著。但是到了昭和年代,法務省在改元成為平成時,頒布了一件戶籍相關的政令:宣布以後各種事務使用的元號將改為平成,並且(就是這個並且),平成第一年將稱為平成元年。
而就在今年4月1日,相似的政令也公布了,「國家預算會使用到的會計年度名稱等等,自改元日之後今年度所有資料均須改為『令和元年度』」。
對我們來說,這也許是很新奇的一件事,國家改換元號後的第一年會被稱作元年。「元年」不再是政府官員拿來自嗨的詞語──啥米AI元年、啥米雲端元年三小的──而是一個在大至政府運行文書、民間契約、小至規費書信上被頻繁使用的名詞。
但換個角度,如今社會已經很習慣使用阿拉伯數字,如果我在賣房合約上把令和元年寫作令和1年會不會有事呢?答案是不會,律師解釋因為合約內容代表著當事雙方的合意,只要合約內容沒有偽造變動,合約本身就是正當合法的,不管是使用元年或1年,只要當事雙方都認同就可以。簽下去以後,這份合約並不會因為你寫元年或1年而有影響。
這樣看來還好,那麼,元年的稱呼對誰會很頭痛呢?我能想到的就是做牛做馬的資訊業了,請各位還在處理i18n的朋友們要注意嘍~~~如果需要在頁面上顯示元號的朋友們可能要小心這個從int轉str的小麻煩──我好久沒寫程式了XD。
對寫文章的人來說,這也許是很重要的小常識:從今起至年底,就是日本的「令和元年」,千萬別寫錯啦──寫錯雖然不會造成理解錯誤,但這並不是日本社會文化中的常用稱呼。
程式int意思 在 91 敏捷開發之路 Facebook 的精選貼文
NOT IN/NOT EXISTS/EXCEPT 使用注意事項
#SQL
【SQL Tips】之【 NULL處理技巧,使用NOT IN /NOT EXISTS/EXCEPT】
許多時候,兩個資料表要找出差異值的時候,許多人第一直覺就是使用【NOT IN】,當然大部分時候都不會有狀況,但是碰到NOT IN的子查詢資料值,如果有NULL,就全盤皆輸,意思就是找不出任何差異。這樣在小量資料可以藉由眼力觀察的狀況下,還可以找出這樣寫法NOT IN的危險地方,但是碰到背景程式,或是資料量多的時候,幾乎無法觀察到這樣危險。所以,告訴自己不要再用【NOT IN】去找出兩邊資料差異。
反倒是要使用【NOT EXISTS】寫法,雖然是複雜一點,但是跨越SQL Server與Oracle兩種資料庫,都是可以正常找出兩邊資料差異值,不擔心NOT EXISTS的基礎資料表有NULL值狀況。另外值得一提就是,需多人會直接使用SQL Server的【EXCEPT】與Oracle的【MINUS】方式,要留意再留意,這樣的方式雖然可以找出差異值,但是針對回傳值,會自動進行重複資料列移除。
【SQL Server Code】
if object_id('x') is not null
drop table x
go
--建立比對基礎資料
create table x(a int)
go
insert into x values(1)
insert into x values(1) --注意重複
insert into x values(NULL) --注意NULL
go
if object_id('y') is not null
drop table y
go
--建立簡單比對來源資料
create table y(b int not null)
go
insert into y values(1)
insert into y values(1)
insert into y values(2)
insert into y values(2)
insert into y values(2) --注意三個2
go
--三種找出y資料表中(1,1,2,2,2) 然後不存在於 x資料表中的(1,1,null)
--【預期要回傳三個2】
--第一種 使用NOT IN 注意(子查詢有NULL值)
--無法處理對比資料表有NULL狀況
SELECT b
FROM y
WHERE b NOT IN(SELECT a from x)
GO
--第二種 使用NOT EXISTS 注意(SELECT 需要 JOIN)
--忠實回傳三個2
SELECT b
FROM y
WHERE NOT EXISTS (SELECT * FROM x WHERE x.a = y.b)
GO
--第三種 使用EXCEPT (僅回傳一個2)
SELECT b FROM y
EXCEPT
SELECT a FROM x
GO
【Oracle Code】
drop table x purge;
--建立比對基礎資料
create table x(a int);
insert into x values(1);
insert into x values(1); --注意重複
insert into x values(NULL); --注意NULL
drop table y purge;
--建立簡單比對來源資料
create table y(b int not null);
insert into y values(1);
insert into y values(1);
insert into y values(2);
insert into y values(2);
insert into y values(2); --注意三個2
--三種找出y資料表中(1,1,2,2,2) 然後不存在於 x資料表中的(1,1,null)
--第一種 使用NOT IN 注意(子查詢有NULL值)
--無法處理對比資料表有NULL狀況
SELECT b
FROM y
WHERE b NOT IN(SELECT a from x);
--第二種 使用NOT EXISTS 注意(SELECT 需要 JOIN)
--忠實回傳三個2
SELECT b
FROM y
WHERE NOT EXISTS (SELECT * FROM x WHERE x.a = y.b);
--第三種 使用EXCEPT (僅回傳一個2)
SELECT b FROM y
MINUS
SELECT a FROM x;