#region 農曆、節氣
///
/// 類
///
public class chinacalendar
}#region 方法主體
//預設系統當前日期
private datetime dtvalue = convert.todatetime(datetime.now.toshortdatestring());
//用來計算農曆的初始日期
private datetime basedate = new datetime(1900, 1, 31);
public int chinayear; //農曆年
public int chinamonth; //農曆月
public int doublemonth; //閏月
public bool isleap; //是否閏月標記
public int chinaday; //農曆日
///
/// 獲取或設定類中應用日期
///
public datetime getdatetime
set}
///
/// 獲取應用星期
///
public string getweek
else if (xingqi == "tuesday")
else if (xingqi == "wednesday")
else if (xingqi == "thursday")
else if (xingqi == "friday")
else if (xingqi == "saturday")
else}}
///
/// 獲取該年的屬相(生肖)
///
public string getanimal
}///
/// 獲取農曆年(天乾 地支)
///
public string getchinayear
}///
/// 獲取農曆月或閏月
///
public string getchinamonth
}///
/// 獲取農曆日
///
public string getchinaday
}#region 農曆的靜態資料
private static int chinacalendarinfo = ;
private static string animals = ;
private static string daystr1 = ;
private static string daystr2 = ;
private static string chinamonthname = ;
private static string gan = ;
private static string zhi = ;
// private static string solarterm = ;
private static int sterminfo = ;
private static string solartermname =;
#endregion
#region 建構函式
public chinacalendar()
public chinacalendar(datetime date)
#endregion
private void initializevalue()
if (sumdays < 0)
//計算閏月
doublemonth = doublemonth(chinayear);
isleap = false;
//計算農曆月
for (chinamonth = 1; chinamonth < 13 && sumdays > 0; chinamonth++)
else
//解除閏月
if (isleap == true && chinamonth == (doublemonth + 1))
sumdays -= tempdays;
}//計算農曆日
if (sumdays == 0 && doublemonth > 0 && chinamonth == doublemonth + 1)
else
}if (sumdays < 0)
chinaday = sumdays + 1;
//計算節氣
computesolarterm();
}///
///返回農曆年的總天數
//////農曆年
///private int chinayeardays(int year)
return (sum + doublemonthdays(year));
}///
///返回農曆年閏月月份1-12 , 沒閏返回0
//////農曆年
///private int doublemonth(int year)
//////返回農曆年閏月的天數
//////農曆年
///private int doublemonthdays(int year)
//////返回農曆年月份的總天數
//////農曆年
///農曆月
///private int monthdays(int year, int month)
//計算屬相(生肖)
private string animal()
//生成農曆年字串
public string chinayear()
//生成農曆月字串
private string chinamonth()
else
}//生成農曆日字串
private string chinaday()
return (s);
}#region 節氣
public struct solarterm
private solarterm solarterm = new solarterm[2];
///
/// 返回指定日期的月份兩個節氣的名稱及時間的solarterm陣列
///
public solarterm getsolarterm
}///
/// 返回指定日期的節氣名,沒有節氣名則返回空字串
///
public string gettermname
return "";}}
// 計算節氣
private void computesolarterm()
}//返回y年第n個節氣(如小寒為1)的日差天數值(pd取值真假,分別表示平氣和定氣)
private double term(int y, int n, bool pd)
// 返回陽曆y年日差天數為x時所對應的月日數(如y=2000,x=274時,返回1001(表示10月1日,即返回100*m+d))
private double antidaydifference(int y, double x)
else
x -= ml;
}return 100 * m + x;
}// 返回x的小數尾數,若x為負值,則是1-小數尾數
private double tail(double x)
// 返回等效標準天數(y年m月d日相應歷種的1年1月1日的等效(即對gregorian曆與julian曆是統一的)天數)
private double equivalentstandardday(int y, int m, int d)
return v;
}// 返回陽曆y年m月d日的日差天數(在y年年內所走過的天數,如2023年3月1日為61)
private int daydifference(int y, int m, int d)
;if (ifg == 1)
if ((y % 100 != 0 && y % 4 == 0) || (y % 400 == 0))
monl[2] += 1;
else
if (y % 4 == 0)
monl[2] += 1;
int v = 0;
for (int i = 0; i <= m - 1; i++)
v += d;
if (y == 1582)
return v;
}// 判斷y年m月(1,2,..,12,下同)d日是gregorian歷還是julian歷
//(opt=1,2,3分別表示標準日曆,gregorge曆和julian歷),是則返回1,是julian曆則返回0,
// 若是gregorge曆所刪去的那10天則返回-1
private int ifgregorian(int y, int m, int d, int opt)
if (opt == 2)
return (1); //gregorian
if (opt == 3)
return (0); //julian
return (-1);
}#endregion 節氣
#endregion
}#endregion
Java獲得當前日期是星期幾
第一種方法 獲取當前日期是星期幾 param date return 當前日期是星期幾 public string getweekofdate date date calendar cal calendar.getinstance cal.settime date int w cal.get cal...
php獲得當前日期時間 date函式
time 得到從1970 01 01到現在共走了多少秒 要找出前一天的時間就是 time 60 60 24 要找出前一年的時間就是 time 60 60 24 365 那麼如何把這個數字換成日期格式呢,就要用到date函式了 t time echo date y m d h i s t 可以省略後面...
獲得當前日期前幾天的日期 不包含當天
獲得當前日期前幾天的日期 不包含當天 datastr為給定日期,count為前幾天 public string getbeforedate string datestr,int count catch parseexception e1 return null 獲取當前日期前一天的日期 public...