天气预报 获取节气的代码

简介:
package com.zzk.cn;

import java.util.*;

public class SolarTerm {
	public static void main(String[] s) throws Exception {
		SolarTerm st = new SolarTerm();

		if (s.length == 3) {
			System.out.println(st.getSoralTerm(Integer.parseInt(s[0]),
					Integer.parseInt(s[1]), Integer.parseInt(s[2])));
		}

		System.out.println(st.getSoralTerm(2011, 12, 22));
		System.out.println(st.getSoralTerm(2011, 12, 24)+"--------");
	}

	final static long[] STermInfo = new long[] { 0, 21208, 42467, 63836, 85337,
			107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343,
			285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795,
			462224, 483532, 504758 };

	private static final String[] SolarTerm = new String[] { "小寒", "大寒", "立春",
			"雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑",
			"立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };

	public SolarTerm() {
	}

	/** 核心方法 根据日期得到节气 */
	public String getSoralTerm(Date Date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(Date);

		int y = cal.get(Calendar.YEAR);
		int m = cal.get(Calendar.MONTH) + 1;
		int d = cal.get(Calendar.DAY_OF_MONTH);

		return getSoralTerm(y, m, d);
	}

	/** 核心方法 根据日期(y年m月d日)得到节气 */
	public String getSoralTerm(int y, int m, int d) {
		String solarTerms;
		if (d == sTerm(y, (m - 1) * 2))
			solarTerms = SolarTerm[(m - 1) * 2];
		else if (d == sTerm(y, (m - 1) * 2 + 1))
			solarTerms = SolarTerm[(m - 1) * 2 + 1];
		else {
			// 到这里说明非节气时间
			solarTerms = "";
		}
		return solarTerms;
	}

	// ===== y年的第n个节气为几日(从0小寒起算)
	private int sTerm(int y, int n) {
		Calendar cal = Calendar.getInstance();
		cal.set(1900, 0, 6, 2, 5, 0);
		long temp = cal.getTime().getTime();
		cal.setTime(new Date(
				(long) ((31556925974.7 * (y - 1900) + STermInfo[n] * 60000L) + temp)));

		return cal.get(Calendar.DAY_OF_MONTH);
	}

}

输出:


冬至
--------

目录
相关文章
|
1天前
|
API
天气预报15日-墨迹天气-IP查询版免费API接口教程
该接口提供基于指定IP地址的15日天气预报,支持POST和GET请求方式。请求需包含用户ID、KEY,可选填IP地址,默认查询访问者IP所在地天气,查询失败时默认返回北京天气。返回值包括状态码、地点及15天天气详情,如星期、日历、天气状况、温度范围及天气图标等。示例请求和响应详见文档。
66 48
|
XML API PHP
天气预报API接口
原文:天气预报API接口 一、中央气象台API接口: 1.
18680 0
|
2天前
|
API
天气预报15日-墨迹天气-地址查询版免费API接口教程
该接口提供15日天气预报服务,通过指定地址获取墨迹天气预报。支持POST或GET请求,需提供用户ID、KEY、省份名称及地点等参数。返回数据包括15天内每天的天气详情,如最高最低温度、天气变化及图标等。示例中使用的ID和KEY为公共测试账号,建议使用个人账号以获得更高调用频率。
|
3月前
|
前端开发 JavaScript 搜索推荐
构建简易天气预报应用
【8月更文挑战第31天】在这篇文章中,我们将一起踏上制作一个简易天气预报应用的旅程。不同于常规的技术文章摘要,这里我们直接潜入主题的核心——如何从零开始,利用HTML、CSS和JavaScript构建一个功能完备的天气预报工具。我们会探索API的使用,理解异步编程概念,并实现一个响应式设计的用户界面。准备好迎接代码和创意的结合,让我们动手实践,共同打造属于你的天气小助手!
|
5月前
|
Windows
技术心得:心知天气网页调用源码
技术心得:心知天气网页调用源码
49 0
|
6月前
|
开发工具
查询天气预报案例
这是一个关于如何查询天气预报的步骤指南,包括五个步骤:找到阿里云的天气服务、购买服务、获取AppCode和秘钥、参考SDK调用接口以及使用Hutool工具进行接口调用。提供了详细的操作截图和接口返回的示例数据。完整文档链接可在文中找到。
281 4
|
编解码 Java Linux
手机天气预报的设计与开发
手机天气预报的设计与开发
|
缓存 数据可视化 前端开发
教程】天气预报应用集成台风信息功能的探讨
通过本教程,我们探讨了如何将台风信息功能集成到天气预报应用中。通过提供台风信息,我们可以帮助用户更好地了解台风的动态和可能影响的地区,提供更全面的天气信息,帮助用户做出明智的决策。希望本教程对你在开发天气预报应用时集成台风信息功能有所帮助!
187 0
|
小程序 安全 API
「教程」微信小程序获取经纬度查询天气预警信息
「教程」微信小程序获取经纬度查询天气预警信息
242 0
|
机器学习/深度学习 小程序 定位技术
「教程」微信小程序获取地理位置信息自动查询天气预报信息(附详细代码)
「教程」微信小程序获取地理位置信息自动查询天气预报信息(附详细代码)
260 0