微信平台开发——日历服务
很多人可能用过如下的功能:
我向微信号发个字符,然后后台去解析字符,拆出其中的关键字,然后去数据库查询是否开启此项服务,如果服务开启,则返回给用户调用此服务的结果。
最近两天开始做的服务有,天气查询,日历,快递,火车,黄金。。。等六个服务做成接口,今天要分析的是这里面唯一没有调用外部API接口的服务。
首先,我们要写好一个计算农历的方法,:
#region 获取农历方法///<summary>/// 实例化一个 ChineseLunisolarCalendar///</summary>private static ChineseLunisolarCalendar ChineseCalendar = new ChineseLunisolarCalendar();///<summary>/// 十天干///</summary>private static string[] tg = { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };///<summary>/// 十二地支///</summary>private static string[] dz = { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };///<summary>/// 十二生肖///</summary>private static string[] sx = { "鼠", "牛", "虎", "免", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };///<summary>/// 返回农历天干地支年///</summary>///<param name="year">农历年</param>///<return s></return s>public static string GetLunisolarYear(int year){if (year > 3){int tgIndex = (year - 4) % 10;int dzIndex = (year - 4) % 12;return string.Concat(tg[tgIndex], dz[dzIndex], "[", sx[dzIndex], "]");}throw new ArgumentOutOfRangeException("无效的年份!");}///<summary>/// 农历月///</summary>///<return s></return s>private static string[] months = { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二(腊)" };///<summary>/// 农历日///</summary>private static string[] days1 = { "初", "十", "廿", "三" };///<summary>/// 农历日///</summary>private static string[] days = { "一", "二", "三", "四", "五", "六", "七", "八", "九", "十" };///<summary>/// 返回农历月///</summary>///<param name="month">月份</param>///<return s></return s>public static string GetLunisolarMonth(int month){if (month < 13 && month > 0){return months[month - 1];}throw new ArgumentOutOfRangeException("无效的月份!");}///<summary>/// 返回农历日///</summary>///<param name="day">天</param>///<return s></return s>public static string GetLunisolarDay(int day){if (day > 0 && day < 32){if (day != 20 && day != 30){return string.Concat(days1[(day - 1) / 10], days[(day - 1) % 10]);}else{return string.Concat(days[(day - 1) / 10], days1[1]);}}throw new ArgumentOutOfRangeException("无效的日!");}///<summary>/// 根据公历获取农历日期///</summary>///<param name="datetime">公历日期</param>///<return s></return s>public static string GetChineseDateTime(DateTime datetime){int year = ChineseCalendar.GetYear(datetime);int month = ChineseCalendar.GetMonth(datetime);int day = ChineseCalendar.GetDayOfMonth(datetime);//获取闰月, 0 则表示没有闰月int leapMonth = ChineseCalendar.GetLeapMonth(year);bool isleap = false;if (leapMonth > 0){if (leapMonth == month){//闰月isleap = true;month--;}else if (month > leapMonth){month--;}}return string.Concat(GetLunisolarYear(year), "年", isleap ? "闰" : string.Empty, GetLunisolarMonth(month), "月", GetLunisolarDay(day));}#endregion
接着,拼接好返回的字符:
Console.Write(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\r\n" + "农历为:"+GetChineseDateTime(DateTime.Now));
为了测试外部调用的情况,我们可以这样,一个ajax过来,然后提交到handler里面,handler调用这些接口来测试下。
需要注意的是,
1,拼接好的字符串里面的换行符最好是HTML标签中的<br/>,不使用\n;
2,调用百度等大型开发平台的API接口的时候,对于返回的JSON,处理JSON转对象的时候,要注意JSON里面数组都要变成LIST,然后再调用自己构造的泛型方法去转换。
下面分享一些私人手藏的接口:
http://api.ajaxsns.com/
http://www.djdkx.com/open/randxml
http://api.map.baidu.com/telematics/v3/weather?location=%E5%8C%97%E4%BA%AC&output=json&ak=这里填写自己的AK
http://www.twototwo.cn/train/QueryTrainScheduleByNumber.aspx
http://www.chepiao100.com/my/doc/checi.html
http://www.haoservice.com/apilist/
http://www.bejson.com/go.html?u=http://www.bejson.com/webInterface.html
网上也有很多付费的接口,另外,今天做黄金查询的时候,发现了个聚合数据也不错哟~
微信平台开发——日历服务相关推荐
- 微信平台开发的基本步骤讲解
微信平台开发基本步骤: 第一步骤:申请一个微信公众平台账号.地址:http://mp.weixin.qq.com 第二步骤:创建一个web应用-Hello 第三步骤:创建一个Servlet -wenx ...
- 【渝粤题库】广东开放大学 微信平台开发与应用 形成性考核 (2)
选择题 题目: 以下哪些功能是属于微信的? 题目: 认证过的订阅号的底部是否可以直接链接到外部链接? 题目: 下面哪些属于页面前端开发技术? 题目: 那种情况下的公众号可以申请微信支付? 题目: 单选 ...
- 【渝粤题库】广东开放大学 微信平台开发与应用 形成性考核
选择题 题目: 以下哪些功能是属于微信的? 题目: 认证过的订阅号的底部是否可以直接链接到外部链接? 题目: 下面哪些属于页面前端开发技术? 题目: 那种情况下的公众号可以申请微信支付? 题目: 单选 ...
- 微信平台开发与微信营销
一个二维码,一个商家在线商城,一套管理系统及平台,一个营销渠道,一个时机 1998年马化腾开QQ,让你注册,你不注册,现在一个5位数的QQ好几万: 2003年马云说开淘宝店不要钱,让你开店,你不开,1 ...
- 中国移动Mas短信平台开发增值服务的一些心得
Mas短信开发增值服务平台建设 中国移动MAS机的知识本人不是很熟悉,只知道如何使用它和.net开发链接起来做短信发布,下面是我在网上看到的一些介绍: 移动代理服务器 Mobile Agent Ser ...
- 微信公众平台开发模板消息php,微信平台开发模板消息(php).pdf
目录 写在最前面 设置模板消息行业属性 设置消息模板具体API列子 行业代码查询 获取模板行业信息 获取模板行业信息具体API例子 查看行业属性信息 获取模板行业属性API例子 获取用户openID ...
- 微信平台开发1--开发者模式基本配置
网上有很多教程,这里作为本人学习笔记记录.网上教程大多是PHP版本,由于我比较喜欢Java,这里用Java进行配置. 基本步骤参考官网 填写好token和URL之后下面要求验证服务器地址有效性 下面是 ...
- 微信平台开发学习笔记二(翻译功能的实现)
参考http://www.cnblogs.com/mchina/p/3170565.html 不过看看这些前辈写这些东西的时间,就是感慨啊,13年我还没用微信呢 这里只是简单的实现有道的翻译功能,并且 ...
- 微信lbs开发java_【微信公众平台开发】之三:LBS的开发
1.相关资料 *当有道翻译遇到微信公众平台{有道翻译API.百度LBS} *百度地图服务接口包括 对微信平台来讲,如果用户发送的地理位置信息,那我们就可以得到经纬度,再通过API即可得到用户当前地理位 ...
最新文章
- 社会网络计算与社会网络分析、核心指标有哪些?社会网络计算有什么意义?
- android中xml文件的生成与读取(Pull)
- 【ACM】会场安排问题
- MAC--PPTP教程
- 2020年最具“钱途”的编程语言
- OpenCV--罗德里格斯(Rodrigues)变换
- C++指针和引用的区别
- 困兽之斗!使用JavaScript执行客户端的exe文件(excute the .exe file on client-side machine by JavaScript)...
- Jmeter使用HTTP代理服务器无法打开网页问题的解决方法
- linux需要添加一个根分区才能安装,linux 根分区扩展
- macbook M1 brew install失败
- ThinkPad安装ALPS驱动后任然关闭触摸板失败的解决方法
- kirin710f是什么处理器_hisiliconkirin710是什么处理器
- u8 客户端修改服务器地址,u8服务器地址怎么修改
- oracle与用友的差别,用友U9 PK SAP/Oracle:敢比就是赢
- android通知栏显示,通知栏点击事件监听
- Linux下的Java配置
- 在IT行业中,程序员的学历重要吗?
- c++i/o系统 纯。
- 2023年网络安全竞赛——Python渗透测试PortScan.py