获取农历的api 获取农历日期_运程_十二生肖

十二生肖>十二星座>运程

获取农历的api 获取农历日期

时间:2023-10-28 06:44:59 作者:追爱记

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于获取农历的api 获取农历日期的文章,本文对文章获取农历的api 获取农历日期好好的分析和解答,希望你能喜欢,只有你喜欢的内容存在,只有你来光临,我们才能继续前行。

获取农历的api 获取农历日期

C# 中 怎样获得当前星期以及农历时间

这是网上的例子,你仔细看看

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System;

using System.Collections.Generic;

using System.Text;

using System.Globalization;

/// <summary>

/// chinaDate 的摘要说明

/// </summary>

public class chinaDate

{

public string cDate()

{

ChineseLunisolarCalendar l = new ChineseLunisolarCalendar();

DateTime dt = DateTime.Today; //转换当日的日期

//dt = new DateTime(2023, 1,29);//农历2023年大年初一(测试用),也可指定日期转换

string[] aMonth ={"","银简正月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "腊月", "腊月" };

//a10表示日期的十位!

string[] a10 ={ "初", "十", "廿", "卅" };

string[] aDigi ={ "O", "一", "二", "三", "四", "五", "六", "七", "八", "九" };

string sYear = "", sYearArab = "", sMonth = "", sDay = "", sDay10 = "", sDay1 = "", sLuniSolarDate = "";

int iYear, iMonth, iDay;

iYear = l.GetYear(dt);

iMonth = l.GetMonth(dt);

iDay = l.GetDayOfMonth(dt);

//Format Year

sYearArab = iYear.ToString();

for (int i = 0; i < sYearArab.Length; i++)

{

sYear += aDigi[Convert.ToInt16(sYearArab.Substring(i, 1))];

}

//Format Month

int iLeapMonth = l.GetLeapMonth(iYear); //获取闰月

if (iLeapMonth > 0 && iMonth<=iLeapMonth)

{

//for (int i = iLeapMonth + 1; i < 13; i++) aMonth[i] = aMonth[i - 1];

aMonth[iLeapMonth] = "闰" + aMonth[iLeapMonth-1];

sMonth = aMonth[l.GetMonth(dt)];

}

else if (iLeapMonth > 0 && iMonth > iLeapMonth)

{

sMonth = aMonth[l.GetMonth(dt) - 1];

}

else

{

sMonth = aMonth[l.GetMonth(dt)];

}

返搏简//Format Day

sDay10 = a10[iDay / 10];

sDay1 = aDigi[(iDay % 10)];

sDay = sDay10 + sDay1;

if (iDay == 10) sDay = "初十";

if (iDay == 20) sDay = "二十";

if (iDay == 30) sDay = "三十";

//Format Lunar Date

//sLuniSolarDate = dt.Year+"年"+dt.Month+"月"+dt.Day+"日 "+Weeks(dt.DayOfWeek.ToString())+"漏裤 农历" + sYear + "年" + sMonth + sDay;

sLuniSolarDate =" 农历" + sMonth + sDay;

return sLuniSolarDate;

}

private string Weeks(string Weeken)

{

switch (Weeken)

{

case "Monday":

return "星期一";

break;

case "Tuesday":

return "星期二";

break;

case "Wednesday":

return "星期三";

break;

case "Thursday":

return "星期四";

break;

case "Friday":

return "星期五";

break;

case "Saturday":

return "星期六";

break;

case "Sunday":

return "星期日";

break;

default:

return " ";

}

}

}

二、第二步

chinaDate s = new chinaDate();

Label1.Text = DateTime.Now.ToShortDateString() + " " + CaculateWeekDay(DateTime.Now.DayOfWeek.ToString()) + " " + s.cDate();

三、第三步

#region 得到今天是星期几

protected string CaculateWeekDay(string week)

{

string weekstr = "";

switch (week)

{

case "Monday": weekstr = "星期一"; break;

case "Tuesday": weekstr = "星期二"; break;

case "Wednesday": weekstr = "星期三"; break;

case "Thursday": weekstr = "星期四"; break;

case "Friday": weekstr = "星期五"; break;

case "Saturday": weekstr = "星期六"; break;

case "Sunday": weekstr = "星期日"; break;

}

return weekstr;

}

使用java开源工具httpclient怎么使用

使用java开源工具httpClient及jsoup抓取解析网页数据

来源:iteye,原文

公历时间:2023年04月11日星期一

农历时间:猴年三月初五

天干地支:丙申年壬辰月癸亥日

宜:求子祈福开光祭祀安床

忌:玉堂(黄道)危日,忌出行

主要包括公历/农历日期,以及忌宜信息的等。但是手里并没有现成的数据可供使用,怎么办呢?革命前辈曾经说过,没有枪,没有炮,敌(wang)人(luo)给我们造!网络上有很多现成的在线万年历应用可供使用,虽然没有现成接口,但是我们可以伸出手来,自己去拿。也就是所谓的数据抓取。

HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰派樱富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如ApacheJakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用尘桥丛了HttpClient。

1.创建HttpClient对象。

2.创建请求方法的消扒实例,并指定请求URL。

3.调用HttpClient对象的execute(HttpUriRequestrequest)发送请求,该方法返回一个HttpResponse。

4.调用HttpResponse相关方法获取相应内容。

5.释放连接。

jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

需要更多信息可以参见官网下载地址

httpClient:http://hc.apache.org/httpcomponents-client-5.0.x/index.html

jsoup:http://jsoup.org/

接下来我们直接上代码,这里我们抓取2345在线万年历的数据http://tools.2345.com/rili.htm

首先我们定义一个实体类Almanac来存储黄历数据

Almanac.java1packagecom.likx.picker.util.bean;2

3/**4

*万年历工具实体类5

*

6

*@author溯源blog7

*2023年4月11日8

*/9publicclassAlmanac{10

privateStringsolar;

/*阳历e.g.2023年4月11日星期一*/11

privateStringlunar;

/*阴历e.g.猴年三月初五*/12

privateStringchineseAra;

/*天干地支纪年法e.g.丙申年壬辰月癸亥日*/13

privateStringshould;

/*宜e.g.求子祈福开光祭祀安床*/14

privateStringavoid;

/*忌e.g.玉堂(黄道)危日,忌出行*/1516

publicStringgetSolar(){17

returnsolar;18

}1920

publicvoidsetSolar(Stringdate){21

this.solar=date;22

}2324

publicStringgetLunar(){25

returnlunar;26

}2728

publicvoidsetLunar(Stringlunar){29

this.lunar=lunar;30

}3132

publicStringgetChineseAra(){33

returnchineseAra;34

}3536

publicvoidsetChineseAra(StringchineseAra){37

this.chineseAra=chineseAra;38

}3940

publicStringgetAvoid(){41

returnavoid;42

}4344

publicvoidsetAvoid(Stringavoid){45

this.avoid=avoid;46

}4748

publicStringgetShould(){49

returnshould;50

}5152

publicvoidsetShould(Stringshould){53

this.should=should;54

}5556

publicAlmanac(Stringsolar,Stringlunar,StringchineseAra,Stringshould,57

Stringavoid){58

this.solar=solar;59

this.lunar=lunar;60

this.chineseAra=chineseAra;61

this.should=should;62

this.avoid=avoid;63

}64}

然后是抓取解析的主程序,写程序之前需要在官网下载需要的jar包

AlmanacUtil.javapackagecom.likx.picker.util;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importorg.apache.http.HttpEntity;importorg.apache.http.ParseException;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.util.EntityUtils;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;importorg.jsoup.select.Elements;/***<STRONG>类描述</STRONG>:

2345万年历信息爬取工具<p>*

*@version1.0<p>*@author溯源blog*

*<STRONG>创建时间</STRONG>:2023年4月11日下午14:15:44<p>*<STRONG>修改历史</STRONG>:<p>*<pre>*修改人

修改时间

修改内容*---------------

-------------------

-----------------------------------*</pre>*/publicclassAlmanacUtil{

/**

*单例工具类

*/

privateAlmanacUtil(){

}

/**

*获取万年历信息

*@return

*/

publicstaticAlmanacgetAlmanac(){

Stringurl="http://tools.2345.com/rili.htm";

Stringhtml=pickData(url);

Almanacalmanac=analyzeHTMLByString(html);

returnalmanac;

}

/*

*爬取网页信息

*/

privatestaticStringpickData(Stringurl){

CloseableHttpClienthttpclient=HttpClients.createDefault();

try{

HttpGethttpget=newHttpGet(url);

CloseableHttpResponseresponse=httpclient.execute(httpget);

try{

//获取响应实体

HttpEntityentity=response.getEntity();

//打印响应状态

if(entity!=null){

returnEntityUtils.toString(entity);

}

}finally{

response.close();

}

}catch(ClientProtocolExceptione){

e.printStackTrace();

}catch(ParseExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}finally{

//关闭连接,释放资源

try{

httpclient.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

returnnull;

}

/*

*使用jsoup解析网页信息

*/

privatestaticAlmanacanalyzeHTMLByString(Stringhtml){

StringsolarDate,lunarDate,chineseAra,should,avoid="";

Documentdocument=Jsoup.parse(html);

//公历时间

solarDate=getSolarDate();

//农历时间

ElementeLunarDate=document.getElementById("info_nong");

lunarDate=eLunarDate.child(0).html().substring(1,3)+eLunarDate.html().substring(11);

//天干地支纪年法

chineseAra=eChineseAra.text().toString();

//宜

should=getSuggestion(document,"yi");

//忌

avoid=getSuggestion(document,"ji");

Almanacalmanac=newAlmanac(solarDate,lunarDate,chineseAra,should,avoid);

returnalmanac;

}

/*

*获取忌/宜

*/

privatestaticStringgetSuggestion(Documentdoc,Stringid){

Elementelement=doc.getElementById(id);

Elementselements=element.getElementsByTag("a");

StringBuffersb=newStringBuffer();

for(Elemente:elements){

sb.append(e.text()+"");

}

returnsb.toString();

}

/*

*获取公历时间,用yyyy年MM月dd日EEEE格式表示。

*@returnyyyy年MM月dd日EEEE

*/

privatestaticStringgetSolarDate(){

Calendarcalendar=Calendar.getInstance();

DatesolarDate=calendar.getTime();

SimpleDateFormatformatter=newSimpleDateFormat("yyyy年MM月dd日EEEE");

returnformatter.format(solarDate);

}}

为了简单明了我把抓取解析抽象成了几个独立的方法,

然后下面是一个测试类简单测试下效果:AlmanacUtilTest.javapackagecom.likx.picker.util.test;publicclassAlmanacUtilTest{

publicstaticvoidmain(Stringargs[]){

Almanacalmanac=AlmanacUtil.getAlmanac();

System.out.println("公历时间:"+almanac.getSolar());

System.out.println("农历时间:"+almanac.getLunar());

System.out.println("天干地支:"+almanac.getChineseAra());

System.out.println("宜:"+almanac.getShould());

System.out.println("忌:"+almanac.getAvoid());

}}

集成到实际项目中效果是这样的:

另外最近博客一直没怎么更新,因为最近考虑到技术氛围的原因,离开了对日外包行业,前往一家互联网公司就职。说一下最近的感受,那就是一个程序员最核心的竞争力不是学会了多少框架,掌握多少种工具(当然这些对于程序员也不可或缺),而是扎实的基础以及快速学习的能力,比如今天这个项目,从对httpClient,jsoup工具一无所知到编写出Demo代码总计大概1个多小时,在之前对于我来说是不可想象的,在技术氛围浓厚的地方快速get技能的感觉,非常好。

当然本例只是一个非常浅显的小例子,网页上内容也很容易抓取,httpClient及jsoup工具更多强大的地方没有体现到,比如httpClient不仅可以发送get请求,而且可以发送post请求,提交表单,传送文件,还比如jsoup最强大的地方在于它支持仿jquery的选择器。本例仅仅使用了最简单的document.getElementById()匹配元素,实际上jsoup的选择器异常强大,可以说它就是java版的jquery,比如这样:Elementslinks=doc.select("a[href]");//awithhrefElementspngs=doc.select("img[src$=.jpg]");

//imgwithsrcending.jpgElementmasthead=doc.select("div.masthead").first();

//divwithclass=mastheadElementsresultLinks=doc.select("h3.r>a");//directaafterh3

以上内容是小编精心整理的关于获取农历的api 获取农历日期的精彩内容,好的文章需要你的分享,喜欢获取农历的api 获取农历日期这篇精彩文章的,请您经常光顾吧!

上一篇:八月份农历有三十吗 八月份农历是什么星座

下一篇:更多运程

本文标题:获取农历的api 获取农历日期

本文链接:http://m.shengxiao88.com/article/165663.html

使劲推荐

获取农历的api 获取农历日期
获取农历的api 获取农历日期

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于获取农历的api 获取农历日期的...

八月份农历有三十吗 八月份农历是什么星座
八月份农历有三十吗 八月份农历是什么星座

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于八月份农历有三十吗 八月份农...

农历五月的蛇男命运如何 农历五月的蛇女命运如何
农历五月的蛇男命运如何 农历五月的蛇女命运如何

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历五月的蛇男命运如何 农历...

盐城8月10日晚报评述文章 盐城8月10日晚报评述内容
盐城8月10日晚报评述文章 盐城8月10日晚报评述内容

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于盐城8月10日晚报评述文章 盐城...

农历7月龙的命运怎么样 农历7月龙男的命运怎么样
农历7月龙的命运怎么样 农历7月龙男的命运怎么样

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历7月龙的命运怎么样 农历7...

发表评论

相关推荐

农历出生算命测试 1969年9月24日农历出生算命
农历出生算命测试 1969年9月24日农历出生算命

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历出生算命测试 1969年9月24...

农历一月是什么星座的人 农历一月是什么星座阳历是什么时候
农历一月是什么星座的人 农历一月是什么星座阳历是什么时候

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历一月是什么星座的人 农历...

水产上用戊二醛消毒吗有毒吗 水产用戊二醛作用哪些方面好
水产上用戊二醛消毒吗有毒吗 水产用戊二醛作用哪些方面好

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于水产上用戊二醛消毒吗有毒吗 ...

11月1日农历是多少号 11月1日农历生日是多少
11月1日农历是多少号 11月1日农历生日是多少

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于11月1日农历是多少号 11月1日...

农历4月23是什么星座 农历4月23是什么星座的座
农历4月23是什么星座 农历4月23是什么星座的座

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历4月23是什么星座 农历4月2...

精选运程标签