通过中央气象台做天气预报

最近做项目有天气预报的需求。

以前也没有做过,在网上搜了大把资料,感觉通过中国气象台的接口获取数据还是比较容易的。

我的实现逻辑是:通过访问http://iframe.ip138.com/ic.asp得到自己的公网IP;

然后访问"http://whois.pconline.com.cn/ip.jsp?ip=" + GetNetIp(),根据公网IP获取所在城市;

最后访问"http://m.weather.com.cn/data/"+getCityCodeByCityName()+".html",根据所在城市获取天气的城市码,

最后通过城市码获取天气数据(一个json数据的字符串)。

获取天气的图标:"http://m.weather.com.cn/img/b"+ imageUrl + ".gif";

写下来,方便自己以后看。

上代码:

 

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;


import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.widget.Toast;


public class WeatherUtil {
	Context c;
	public WeatherUtil(Context c){
		this.c = c;
	}

	String cityName; 
	/**  * 获取IP  * @return line  */ 
	public String GetNetIp() {  
		URL infoUrl = null;  
		InputStream inStream = null;    
		try {   
			infoUrl = new URL("http://iframe.ip138.com/ic.asp");   
			URLConnection connection = infoUrl.openConnection();   
			HttpURLConnection httpConnection = (HttpURLConnection) connection;   
			int responseCode = httpConnection.getResponseCode();   
			if (responseCode == HttpURLConnection.HTTP_OK) {    
				inStream = httpConnection.getInputStream();    
				BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));    
				StringBuilder strber = new StringBuilder();    
				String line = null;    
				while ((line = reader.readLine()) != null)     strber.append(line + "\n");    
				inStream.close();    
				// 从反馈的结果中提取出IP地址    
				int start = strber.indexOf("[");    
				int end = strber.indexOf("]", start + 1);    
				line = strber.substring(start + 1, end);    
				return line;   
				}  
			} catch (MalformedURLException e) {  
				e.printStackTrace();  
				} catch (IOException e) {   
					e.printStackTrace();  
					}  
		return null; 
		} 
	/**
	 * Get the name of the city 
	 * @return city  
	 **/ 
	public String getCityByIp() { 
		try {   
			URL url = new URL("http://whois.pconline.com.cn/ip.jsp?ip=" + GetNetIp());   
			HttpURLConnection connect = (HttpURLConnection) url.openConnection();   
			InputStream is = connect.getInputStream();   
			ByteArrayOutputStream outStream = new ByteArrayOutputStream();   
			byte[] buff = new byte[256];   
			int rc = 0;   
			while ((rc = is.read(buff, 0, 256)) > 0) {    
				outStream.write(buff, 0, rc);       
				}   
			System.out.println(outStream);   
			byte[] b = outStream.toByteArray();      
			// 关闭   
			outStream.close();   
			is.close();   
			connect.disconnect();      
			String address = new String(b,"GBK");   
			if (address.startsWith("北")||address.startsWith("上")||address.startsWith("重")||address.startsWith("天")){
				setCity(address.substring(0,address.indexOf("市")));     
				}     
			if(address.startsWith("香")){     
				setCity(address.substring(0,address.indexOf("港")));     
				}if(address.startsWith("澳")){     
					setCity(address.substring(0,address.indexOf("门")));     
					}    if (address.indexOf("省") != -1) {     
						setCity(address.substring(address.indexOf("省") + 1, address.indexOf("市")));    
						}     
					} catch (Exception e) { 
						e.printStackTrace();  
						} 
		Log.i("zxk",getCity() );
			return getCity(); 
			}
	
	public void  setCity(String cityName){    
		this.cityName = cityName;   
		}  
	public String getCity(){   
		return this.cityName; 
		}
	@SuppressLint("SdCardPath")
	SQLiteDatabase db;
	public void getDataBase(){
		String DATABASE_PATH = "/data",
				DATABASE_NAME="weather.db";
		String databaseFilename = DATABASE_PATH + "/" + DATABASE_NAME;
	    File dir = new File(DATABASE_PATH);
	    if (!dir.exists())
	     dir.mkdir();
	    if (!(new File(databaseFilename)).exists()) {
	     InputStream is = c.getResources().openRawResource(R.raw.weather);
	     FileOutputStream fos;
		try {
			fos = new FileOutputStream(databaseFilename);
			 byte[] buffer = new byte[8192];
		     int count = 0;
		     while ((count = is.read(buffer)) > 0) {
		    
				fos.write(buffer, 0, count);
			
		     }
		     fos.close();
		     is.close();
		     db = SQLiteDatabase.openDatabase(databaseFilename, 
			    		null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    
	    }else{
	    db = SQLiteDatabase.openDatabase(databaseFilename, 
	    		null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
	    }
	    
	}
	
	
	public String getCityCodeByCityName(){
		String cityname = getCityByIp();
		String cityCode="999999999";
		if(db !=null){
		Cursor c = db.query("city_info", new String[]{"_code1"}, "_city=?", 
				new String[]{cityname}, null, null, null);
		
		c.moveToFirst();
		while(!c.isAfterLast()){
			String cityCode1 = c.getString(c.getColumnIndex("_code1"));
			if(Integer.valueOf(cityCode1)<Integer.valueOf(cityCode)){
				cityCode = cityCode1;
			}
			c.moveToNext();
		}
		c.close();
		db.close();
		}
		Log.i("zxk", "citycode = "+cityCode);
		if(cityCode.equals("999999999")){
		return "101010100";
		}else{
		return	cityCode;
		}
	}

	public WeatherInfo getWeatherInfo() throws IOException{
		String url = "http://m.weather.com.cn/data/"+getCityCodeByCityName()+".html";
		//创建一个http请求对象
		HttpGet request=new HttpGet(url);
		//创建HttpParams以用来设置HTTP参数
		HttpParams params=new BasicHttpParams();
		//设置连接超时或响应超时
		HttpConnectionParams.setConnectionTimeout(params,30000);
		HttpConnectionParams.setSoTimeout(params,30000);
		//创建一个网络访问处理对象
		HttpClient httpClient=new DefaultHttpClient(params);
		try{
		//执行请求参数项
			Log.i("zxk", "连接OK");
		HttpResponse response=httpClient.execute(request);
		//判断是否请求成功
		if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
		//获得响应信息
			Log.i("zxk", "请求成功");	
		String content=EntityUtils.toString(response.getEntity());
		Log.i("zxk", content);
		
		return praseWeatherInfo(content);
		}else{
		//网连接失败,使用Toast显示提示信息
		Toast.makeText(c,"网络访问失败,请检查您机器的联网设备!",Toast.LENGTH_LONG).show();
		}
	
		}catch(Exception e){
		e.printStackTrace();
		}finally{
		//释放网络连接资源
		httpClient.getConnectionManager().shutdown();
		}
		return null;
	}




   public static String rUrl(String urlPath) {
        StringBuffer sb = new StringBuffer();
        try    {
            URL url = new URL(urlPath);
            BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
            String s = null;
            while((s = br.readLine()) != null) {
                sb = sb.append(s).append(" ");
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return sb.toString().trim();
    }


	public  WeatherInfo praseWeatherInfo(String str) {
		// TODO Auto-generated method stub
		WeatherInfo todayWeather = new WeatherInfo();
		JSONTokener jsonParser = new JSONTokener(str); 
		jsonParser.skipTo('{');
		
		try {
			JSONObject jobj = (JSONObject) jsonParser.nextValue();
			JSONObject weatherinfo=jobj.getJSONObject("weatherinfo");
			String cityName = weatherinfo.getString("city");
			String cityCode = weatherinfo.getString("cityid");
			String temp = weatherinfo.getString("temp1");
			String weatherDay = weatherinfo.getString("weather1");
			String weatherNight = weatherinfo.getString("weather2");
			String weatherImageday = weatherinfo.getString("img1");
			String weatherImageNight = weatherinfo.getString("img2");
			
			todayWeather.setCityCode(cityCode);
			todayWeather.setCityName(cityName);
			todayWeather.setTemp(temp);
			todayWeather.setWeatherDay(weatherDay);
			todayWeather.setWeatherImageDay(weatherImageday);
			todayWeather.setWeatherNight(weatherNight);
			todayWeather.setWeatherImageNight(weatherImageNight);
			
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return todayWeather;
	}

	public Drawable loadImage(String imageUrl) {
		try {
			return Drawable.createFromStream(
					(InputStream) new URL("http://m.weather.com.cn/img/b"
							+ imageUrl + ".gif").getContent(), "test");
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	public int loadImage(int weatherCode){
		int resouce = -1;
		switch(weatherCode){
		case 0:
			resouce = R.drawable.b0;
			break;
		case 1:
			resouce = R.drawable.b1;
			break;
		case 2:
			resouce = R.drawable.b2;
			break;
		case 3:
			resouce = R.drawable.b3;
			break;
		case 4:
			resouce = R.drawable.b4;
			break;
		case 5:
			resouce = R.drawable.b5;
			break;
		case 6:
			resouce = R.drawable.b6;
			break;
		case 7:
			resouce = R.drawable.b7;
			break;
		case 8:
			resouce = R.drawable.b8;
			break;
		case 9:
			resouce = R.drawable.b9;
			break;
		case 10:
			resouce = R.drawable.b10;
			break;
		case 11:
			resouce = R.drawable.b11;
			break;
		case 12:
			resouce = R.drawable.b12;
			break;
		case 13:
			resouce = R.drawable.b13;
			break;	
		case 14:
			resouce = R.drawable.b14;
			break;
		case 15:
			resouce = R.drawable.b15;
			break;
		case 16:
			resouce = R.drawable.b16;
			break;
		case 17:
			resouce = R.drawable.b17;
			break;
		case 18:
			resouce = R.drawable.b18;
			break;
		case 19:
			resouce = R.drawable.b19;
			break;
		case 20:
			resouce = R.drawable.b20;
			break;	
		case 21:
			resouce = R.drawable.b21;
			break;
		case 22:
			resouce = R.drawable.b22;
			break;
		case 23:
			resouce = R.drawable.b23;
			break;
		case 24:
			resouce = R.drawable.b24;
			break;
		case 25:
			resouce = R.drawable.b25;
			break;
		case 26:
			resouce = R.drawable.b26;
			break;
		case 27:
			resouce = R.drawable.b27;
			break;	
		case 28:
			resouce = R.drawable.b28;
			break;	
		case 29:
			resouce = R.drawable.b29;
			break;
		case 30:
			resouce = R.drawable.b30;
			break;
		case 31:
			resouce = R.drawable.b31;
			break;
		
		}
		
		
		return resouce;
		
	}

}

天气实体类:

public class WeatherInfo {

	private String cityName;
	private String cityCode;
	private String temp;
	private String weatherDay;
	private String weatherNight;
	private String weatherImageDay;
	private String weatherImageNight;
	
	public String getWeatherImageDay() {
		return weatherImageDay;
	}
	public void setWeatherImageDay(String weatherImageDay) {
		this.weatherImageDay = weatherImageDay;
	}
	public String getWeatherImageNight() {
		return weatherImageNight;
	}
	public void setWeatherImageNight(String weatherImageNight) {
		this.weatherImageNight = weatherImageNight;
	}
	
	public String getCityName() {
		return cityName;
	}
	public void setCityName(String cityName) {
		this.cityName = cityName;
	}
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	public String getTemp() {
		return temp;
	}
	public void setTemp(String temp) {
		this.temp = temp;
	}
	public String getWeatherDay() {
		return weatherDay;
	}
	public void setWeatherDay(String weatherDay) {
		this.weatherDay = weatherDay;
	}
	public String getWeatherNight() {
		return weatherNight;
	}
	public void setWeatherNight(String weatherNight) {
		this.weatherNight = weatherNight;
	}
	
}


顺便把公历转农历的也弄上来吧。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

public class DateUtil {

	final private static long[] lunarInfo = new long[] { 0x04bd8, 0x04ae0, 0x0a570,
		0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,
		0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0,
		0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50,
		0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,
		0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0,
		0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4,
		0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550,
		0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950,
		0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260,
		0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0,
		0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,
		0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40,
		0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3,
		0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960,
		0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0,
		0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,
		0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0,
		0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65,
		0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0,
		0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2,
		0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0 };

//private final static String[] week = new String[]{"日","一","二","三","四","五","六"}; 

final private static int[] year20 = new int[] { 1, 4, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };
final private static int[] year19 = new int[] { 0, 3, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };
final private static int[] year2000 = new int[] { 0, 3, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };
public final static String[] nStr1 = new String[]{"","正","二","三","四","五","六","七","八","九","十","十一","十二"};	

private final static String[] Gan=new String[]{"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
private final static String[] Zhi=new String[]{"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
private final static String[] Animals=new String[]{"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};

/**
 * 传回农历 y年的总天数
 * @param y
 * @return
 */
final private static int lYearDays(int y){
	int i, sum = 348;
	for (i = 0x8000; i > 0x8; i >>= 1) {
		if ((lunarInfo[y - 1900] & i) != 0)
			sum += 1;
	}
	return (sum + leapDays(y));
}

/**
 * 传回农历 y年闰月的天数
 * @param y
 * @return
 */
final private static int leapDays(int y){
	if (leapMonth(y) != 0) {
		if ((lunarInfo[y - 1900] & 0x10000) != 0)
			return 30;
		else
			return 29;
	} else
		return 0;
}

/**
 * 传回农历 y年闰哪个月 1-12 , 没闰传回 0
 * @param y
 * @return
 */
final private static int leapMonth(int y){
	return (int) (lunarInfo[y - 1900] & 0xf);
}

/**
 * 传回农历 y年m月的总天数
 * @param y
 * @param m
 * @return
 */
final private static int monthDays(int y, int m){
	if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)
		return 29;
	else
		return 30;
}

/**
 * 传回农历 y年的生肖
 * @param y
 * @return
 */
final public static String AnimalsYear(int y){
	return Animals[(y - 4) % 12];
}

/**
 * 传入 月日的offset 传回干支,0=甲子
 * @param num
 * @return
 */
final private static String cyclicalm(int num)
{
	return (Gan[num % 10] + Zhi[num % 12]);
}

/**
 * 传入 offset 传回干支, 0=甲子
 * @param y
 * @return
 */
final public static String cyclical(int y){
	int num = y - 1900 + 36;
	return (cyclicalm(num));
}

/**
 * 传出农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6
 * @param y
 * @param m
 * @return
 */
protected final long[] Lunar(int y, int m) {
	long[] nongDate = new long[7];
	int i = 0, temp = 0, leap = 0;
	//Date baseDate = new Date(1900, 1, 31);
	Date baseDate = new GregorianCalendar(1900+1900,1,31).getTime();
	//Date objDate = new Date(y, m, 1);
	Date objDate = new GregorianCalendar(y+1900,m,1).getTime();
	long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;
	if (y < 2000)
		offset += year19[m - 1];
	if (y > 2000)
		offset += year20[m - 1];
	if (y == 2000)
		offset += year2000[m - 1];
	nongDate[5] = offset + 40;
	nongDate[4] = 14;

	for (i = 1900; i < 2050 && offset > 0; i++) {
		temp = lYearDays(i);
		offset -= temp;
		nongDate[4] += 12;
	}
	if (offset < 0) {
		offset += temp;
		i--;
		nongDate[4] -= 12;
	}
	nongDate[0] = i;
	nongDate[3] = i - 1864;
	leap = leapMonth(i); // 闰哪个月
	nongDate[6] = 0;

	for (i = 1; i < 13 && offset > 0; i++) {
		// 闰月
		if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) {
			--i;
			nongDate[6] = 1;
			temp = leapDays((int) nongDate[0]);
		} else {
			temp = monthDays((int) nongDate[0], i);
		}

		// 解除闰月
		if (nongDate[6] == 1 && i == (leap + 1))
			nongDate[6] = 0;
		offset -= temp;
		if (nongDate[6] == 0)
			nongDate[4]++;
	}

	if (offset == 0 && leap > 0 && i == leap + 1) {
		if (nongDate[6] == 1) {
			nongDate[6] = 0;
		} else {
			nongDate[6] = 1;
			--i;
			--nongDate[4];
		}
	}
	if (offset < 0) {
		offset += temp;
		--i;
		--nongDate[4];
	}
	nongDate[1] = i;
	nongDate[2] = offset + 1;
	return nongDate;
}

/**
 * 传出y年m月d日对应的农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6
 * @param y
 * @param m
 * @param d
 * @return
 */
final public static long[] calElement(int y, int m, int d)
{
	long[] nongDate = new long[7];
	int i = 0, temp = 0, leap = 0;
	//Date baseDate = new Date(0, 0, 31);
	Date baseDate = new GregorianCalendar(0+1900,0,31).getTime();
	//Date objDate = new Date(y - 1900, m - 1, d);
	Date objDate = new GregorianCalendar(y,m-1,d).getTime();
	long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;
	nongDate[5] = offset + 40;
	nongDate[4] = 14;

	for (i = 1900; i < 2050 && offset > 0; i++) {
		temp = lYearDays(i);
		offset -= temp;
		nongDate[4] += 12;
	}
	if (offset < 0) {
		offset += temp;
		i--;
		nongDate[4] -= 12;
	}
	nongDate[0] = i;
	nongDate[3] = i - 1864;
	leap = leapMonth(i); // 闰哪个月
	nongDate[6] = 0;

	for (i = 1; i < 13 && offset > 0; i++) {
		// 闰月
		if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) {
			--i;
			nongDate[6] = 1;
			temp = leapDays((int) nongDate[0]);
		} else {
			temp = monthDays((int) nongDate[0], i);
		}

		// 解除闰月
		if (nongDate[6] == 1 && i == (leap + 1))
			nongDate[6] = 0;
		offset -= temp;
		if (nongDate[6] == 0)
			nongDate[4]++;
	}

	if (offset == 0 && leap > 0 && i == leap + 1) {
		if (nongDate[6] == 1) {
			nongDate[6] = 0;
		} else {
			nongDate[6] = 1;
			--i;
			--nongDate[4];
		}
	}
	if (offset < 0) {
		offset += temp;
		--i;
		--nongDate[4];
	}
	nongDate[1] = i;
	nongDate[2] = offset + 1;
	return nongDate;
}

public final static String getChinaDate(int day) {
	String a = "";
	if (day == 10)
		return "初十";
	if(day==20)
		return "二十";
	if(day==30)
		return "三十";
	int two = (int) ((day) / 10);
	if (two == 0)
		a = "初";
	if (two == 1)
		a = "十";
	if (two == 2)
		a = "廿";
	if (two == 3)
		a = "三";
	int one = (int) (day % 10);
	switch (one) {
	case 1:
		a += "一";
		break;
	case 2:
		a += "二";
		break;
	case 3:
		a += "三";
		break;
	case 4:
		a += "四";
		break;
	case 5:
		a += "五";
		break;
	case 6:
		a += "六";
		break;
	case 7:
		a += "七";
		break;
	case 8:
		a += "八";
		break;
	case 9:
		a += "九";
		break;
	}
	return a;
}

public static long[] today(){
	Calendar today = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE);
	int year = today.get(Calendar.YEAR);
	int month = today.get(Calendar.MONTH)+1;
	int date = today.get(Calendar.DATE);
	long[] l = calElement(year, month, date);
	return l;
}

public static long[] get(Calendar today){
	int year = today.get(Calendar.YEAR);
	int month = today.get(Calendar.MONTH)+1;
	int date = today.get(Calendar.DATE);
	long[] l = calElement(year, month, date);
	return l;
}

/**
 * 返回代表今日时间的字符串
 * @param locale
 * @return
 */
public static String today(Locale locale){
	if(locale == null)
		locale = Locale.SIMPLIFIED_CHINESE;
	Calendar today = Calendar.getInstance(locale);
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEE", locale);
	try{
		return sdf.format(today.getTime());
	}finally{
		today = null;
		sdf = null;
	}
}

/**
 * 农历日历工具使用演示
 * @param args
 */
public static void main(String[] args) {
	//System.out.println("今天是:"+week());
}


}


 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值