要求計算該日期與2023年10月1日距離多少天
例如:使用者輸入了:1949-10-2
程式輸出:1
使用者輸入了:1949-11-1
程式輸出:31
總共是寫了兩個類,然後**微亂:
yearandmonth:
require("yearprint")
local nyear = 1949
local nmonth = 10
local nday =1
--[[--
--@param #number year 傳遞過來的引數是年數
--@param #number month 傳遞過來的引數是月份
--@param #number day 傳遞過來的引數是日期
--@return #day 返回的是這一年的天數
--]]
local function getdays(year,month,day)
local temp =
--判斷是否是閏年,如果為閏年,改變2月是29,否則改變2月是28
if ((year%4==0 and year%100 ~= 0) or year%400==0) then
temp[2] = 29
else
temp[2] = 28
endfor i = 1,month-1 do
day = day + temp[i];
end-- 返回的結果是這一年到月份的天數
return day;
end--[[--
--@param #number year 傳遞多來的年數
--@return #number 判斷年數是否為閏年,如果是閏年,返回366天,反之則返回365天
--]]
local function days(year)
--判斷是否閏年,如果閏年,返回366天,如果不是閏年,返回365天
return ((year%4==0 and year%100 ~=0) or year%400==0) and 366 or 365;
end--[[--
--@param #number sum 兩個年月份相差的天數
--@param #number year 輸入的年份
--@param #number month 輸入的月份
--@param #number day 輸入的日期
--@param #number nyear 初始的年份
--@param #number nmonth 初始的月份
--@param #number nday 初始的日期
--@return #number sum是兩個年份相差的天數
--]]
local function sumday(year,month,day)
local sum = 0;
-- 小於nyear年
if year < nyear then
for x = year,nyear - 1 do
-- 傳遞年數過去,number型
sum = sum + days(x);
end-- 傳遞的是number型
sum = sum + getdays(nyear,nmonth,nday);
sum = sum - getdays(year,month,day);
elseif year == nyear then
-- 如果是同一年,判斷月份的大小,然後去絕對值
sum = math.abs(getdays(year,month,day)-getdays(nyear,nmonth,nday));
else
-- 大於nyear年
for i = nyear + 1 ,year do
sum = sum + days(i);
endsum = sum + getdays(year,month,day);
sum = sum - getdays(nyear,nmonth,nday);
endprint("相差天數結果:" ..sum);
return sum
end--[[--
--@param #class yearprint ymdprint算是檔案加密,printyearmonthday()輸入年月日的方法
--@param #table data 本地化的乙個陣列,並接受了yearprint累裡的資料
--@param #number sum 兩個年月份相差的天數
--@param #number year 輸入的年份
--@param #number month 輸入的月份
--@param #number day 輸入的日期
--]]
local function isleapyear()
local data = {}
data = ymdprint.printyearmonthday()
local year = tonumber(data.year);
local month = tonumber(data.month);
local day = tonumber(data.day);
sumday(year,month,day)
end--[[--
--@isleapyear是計算年月份天數的方法
--]]
function main()
isleapyear()
endmain()
第二個類yearprint:
2 2 兩個日期相差天數
現在有兩個不同的日期,你能告訴我它們之間差幾天嗎?輸入格式 有多行資料,每行資料報含6個數字,中間用空格分隔,每3個數字代表乙個日期。輸出格式 對應於輸入資料,輸出資料有相同的行數,每行表示對應的兩個日期相差的天數。輸入樣例 1934 2 4 2047 11 30 2192 10 3 1921 5 ...
JAVA 比較兩個日期相差的天數
在測試工作中經常會使用到比較兩個日期相差的天數,我之前用過實現這一功能的兩個版本的方法,源 如下 版本 1 public static intgetintervaldays date fdate,date odate longintervalmilli odate.gettime fdate.get...
java 判斷兩個時間相差的天數
1 實現目標 輸入 兩個日期 輸出 兩個日期相差的天數 2 實現 方法1 通過calendar類的日期比較。注意 這裡需要考慮一下 date2比date1多的天數 param date1 param date2 return public static intdifferentdays date d...