獲得當前日期 農曆日期及生肖

2021-06-09 20:38:03 字數 4675 閱讀 3002

#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...