209 lines
8.9 KiB
Java
209 lines
8.9 KiB
Java
package com.bamanker.dailylove;
|
|
|
|
import cn.hutool.core.date.ChineseDate;
|
|
import cn.hutool.core.date.DateUnit;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.bamanker.dailylove.config.DailyLoveConfigure;
|
|
import com.bamanker.dailylove.domain.TianXinReqParam;
|
|
import com.bamanker.dailylove.domain.Weather;
|
|
import com.bamanker.dailylove.service.DataRemoteClient;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.bouncycastle.util.Strings;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
|
import jakarta.annotation.Resource;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
|
|
import static com.bamanker.dailylove.utils.DataUtils.getBirthdays;
|
|
|
|
@SpringBootTest
|
|
@Slf4j
|
|
class DailyLoveApplicationTests {
|
|
|
|
// @Resource
|
|
// DataRemoteClient dataRemoteClient;
|
|
//
|
|
// String remark = "❤";
|
|
//
|
|
// @Test
|
|
// void test4(){
|
|
// log.info("mark: {}",205%100);
|
|
//
|
|
// }
|
|
// @Test
|
|
// void test3() {
|
|
//
|
|
//
|
|
// //获取输入的生日
|
|
// String boyBirthday = DailyLoveConfigure.Boy_Birthday;
|
|
// //获取农历生日
|
|
// ChineseDate chineseBir = new ChineseDate(DateUtil.parseDate(DailyLoveConfigure.Boy_Birthday));
|
|
// log.info("生日的农历日期是:{}", chineseBir);
|
|
// //截取日、月
|
|
// String[] strings = Strings.split(boyBirthday, '-');
|
|
// int chineseMonth = chineseBir.getMonth();
|
|
// int chineseDay = chineseBir.getDay();
|
|
// //获取当前日期的年
|
|
// Calendar dateToday = Calendar.getInstance();
|
|
// int todayYear = dateToday.get(Calendar.YEAR);
|
|
// //把生日的年改为今年,方便计算
|
|
// ChineseDate chineseDate = new ChineseDate(todayYear, chineseMonth, chineseDay,false);
|
|
// //农历日期对应的阳历日期
|
|
// int gregorianDay = chineseDate.getGregorianDay();
|
|
// //计算时间差
|
|
// long days = haveThisDay(chineseMonth, chineseDay, dateToday, todayYear, chineseDate, gregorianDay);
|
|
// log.info("days:{}", days);
|
|
//
|
|
// }
|
|
//
|
|
// /**
|
|
// * 需要递归计算日期差
|
|
// *
|
|
// * @param chineseMonth 农历月
|
|
// * @param chineseDay 农历日
|
|
// * @param dateToday 今天的日期类
|
|
// * @param todayYear 当前的年
|
|
// * @param chineseDate 组装的待计算的新日期
|
|
// * @param gregorianDay 判断是否存在农历日期的参数,-1代表今年不存在这个农历日期
|
|
// * @return 计算好的天数
|
|
// */
|
|
// private static long haveThisDay(int chineseMonth, int chineseDay, Calendar dateToday, int todayYear, ChineseDate chineseDate, int gregorianDay) {
|
|
// //判断当前年份是否存在农历日对应的阳历日
|
|
// while (gregorianDay == -1) {
|
|
// //不存在,计算明年
|
|
// todayYear += 1;
|
|
// chineseDate = new ChineseDate(todayYear, chineseMonth, chineseDay, false);
|
|
// gregorianDay = chineseDate.getGregorianDay();
|
|
// }
|
|
// //存在
|
|
// //将农历日期改为阳历日期
|
|
// Calendar gregorianbir = chineseDate.getGregorianCalendar();
|
|
// //判断这个日期是否和今年是同一年
|
|
// if (todayYear == dateToday.get(Calendar.YEAR)) {
|
|
// //是同一年,判断这一天过了没
|
|
// if (gregorianbir.get(Calendar.DAY_OF_YEAR) < dateToday.get(Calendar.DAY_OF_YEAR)) {
|
|
// //这一天过了,计算明年
|
|
// todayYear += 1;
|
|
// chineseDate = new ChineseDate(todayYear, chineseMonth, chineseDay, false);
|
|
// gregorianDay = chineseDate.getGregorianDay();
|
|
// //递归计算下一年是否存在对应的阳历日
|
|
// return haveThisDay(chineseMonth, chineseDay, dateToday, todayYear, chineseDate, gregorianDay);
|
|
// }
|
|
// //没有过,直接计算
|
|
// }
|
|
// //不是同一年,直接计算
|
|
// Date time = dateToday.getTime();
|
|
// log.info("当前的日期是:{}", time);
|
|
// Date time1 = gregorianbir.getTime();
|
|
// log.info("下一个生日的日期:{}", time1);
|
|
// return DateUtil.between(dateToday.getTime(), gregorianbir.getTime(), DateUnit.DAY);
|
|
// }
|
|
//
|
|
// @Test
|
|
// void test2() {
|
|
//
|
|
// TianXinReqParam param1 = new TianXinReqParam();
|
|
// param1.setKey(DailyLoveConfigure.TianXin_Key);
|
|
// param1.setCity(DailyLoveConfigure.City_ID);
|
|
// param1.setType("7");
|
|
// String weatherJson = dataRemoteClient.getWeather(param1);
|
|
// log.info("weather:{}", weatherJson);
|
|
// JSONObject resWeather = JSONObject.parseObject(weatherJson);
|
|
// JSONObject result = resWeather.getJSONArray("result").getJSONObject(0).getJSONArray("list").getJSONObject(2);
|
|
// log.info("----result----:{}", result);
|
|
// Weather weather = result.toJavaObject(Weather.class);
|
|
// log.info("weather:{}", weather);
|
|
// ChineseDate chineseDate = new ChineseDate(DateUtil.parseDate(weather.getDate()));
|
|
// System.out.println("--------------55555----------"+weather.getDate());
|
|
// System.out.println("------------------------"+chineseDate);
|
|
//
|
|
//
|
|
// }
|
|
//
|
|
//
|
|
// @Test
|
|
// void test1() {
|
|
// int loveDays = getBirthdays("2023-05-14");
|
|
// log.info("-------------------------------{}", loveDays);
|
|
// }
|
|
//
|
|
// public static int getLoveDays(String loveday) {
|
|
// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
// int days = 0;
|
|
// try {
|
|
// long time = System.currentTimeMillis() - dateFormat.parse(loveday).getTime();
|
|
// days = (int) (time / (24 * 60 * 60 * 1000));
|
|
//
|
|
// } catch (ParseException e) {
|
|
// e.printStackTrace();
|
|
// }
|
|
// return days;
|
|
// }
|
|
//
|
|
// @Test
|
|
// void contextLoads() {
|
|
// TianXinReqParam param1 = new TianXinReqParam();
|
|
// param1.setKey(DailyLoveConfigure.TianXin_Key);
|
|
// param1.setCity(DailyLoveConfigure.City_ID);
|
|
// param1.setType("1");
|
|
// String weatherJson = dataRemoteClient.getWeather(param1);
|
|
// log.info("weather:{}", weatherJson);
|
|
// JSONObject responseWeather = JSONObject.parseObject(weatherJson);
|
|
// log.info("weatherJson:{}", responseWeather);
|
|
// JSONObject resultWeather = responseWeather.getJSONArray("result").getJSONObject(0);
|
|
// JSONArray result1 = responseWeather.getJSONArray("result");
|
|
// log.info("-----------------{}", result1);
|
|
// log.info("weatherJsonNewList:{}", resultWeather);
|
|
// Weather weather = resultWeather.toJavaObject(Weather.class);
|
|
// log.info("weatherJsonNewList:{}", weather.toString());
|
|
//
|
|
//
|
|
// ResultVo resultVo = ResultVo.initializeResultVo(DailyLoveConfigure.Open_ID,
|
|
// DailyLoveConfigure.Template_ID,
|
|
// DailyLoveConfigure.Color_Top);
|
|
// resultVo.setAttribute("now", new DataItem(weather.getDate() + " " + weather.getWeek(), "#00BFFF"));
|
|
// resultVo.setAttribute("city", new DataItem(weather.getArea(), null));
|
|
// resultVo.setAttribute("weather", new DataItem(weather.getWeather(), "#1f95c5"));
|
|
// resultVo.setAttribute("min_temperature", new DataItem(weather.getLowest(), "#0ace3c"));
|
|
// resultVo.setAttribute("max_temperature", new DataItem(weather.getHighest(), "#dc1010"));
|
|
// resultVo.setAttribute("tips", new DataItem(weather.getTips(), null));
|
|
//
|
|
//
|
|
// TianXinReqParam param2 = new TianXinReqParam();
|
|
// param2.setKey(DailyLoveConfigure.TianXin_Key);
|
|
// String rainbowJson = dataRemoteClient.getRainbow(param2);
|
|
// log.info("rainbowJson:{}", rainbowJson);
|
|
// JSONObject responseRainbow = JSONObject.parseObject(rainbowJson);
|
|
// String rainbow = responseRainbow.getJSONArray("result").getJSONObject(0).getString("content");
|
|
// log.info("rainbow:{}", rainbow);
|
|
// resultVo.setAttribute("daily_english_cn", new DataItem(rainbow, "#FF69B4"));
|
|
// resultVo.setAttribute("remark", new DataItem(remark, "#FF1493"));
|
|
//
|
|
//
|
|
// String englishJson = dataRemoteClient.getDailyEnglish(param2);
|
|
// log.info("englishJson:{}", englishJson);
|
|
// JSONObject responseEnglist = JSONObject.parseObject(englishJson);
|
|
// String englist = responseEnglist.getJSONArray("result").getJSONObject(0).getString("en");
|
|
// log.info("english:{}", englist);
|
|
// resultVo.setAttribute("daily_english_en", new DataItem(rainbow, "#800080"));
|
|
//
|
|
// int birthdays = DataUtils.getBirthdays(DailyLoveConfigure.Girl_Birthday);
|
|
// log.info("bir_day:{}", birthdays);
|
|
// resultVo.setAttribute("bir_day", new DataItem(birthdays + "", "#FFA500"));
|
|
//
|
|
// int loveDays = DataUtils.getLoveDays(DailyLoveConfigure.Love_Day);
|
|
// log.info("love_day:{}", loveDays);
|
|
// resultVo.setAttribute("love_day", new DataItem(loveDays + "", "#FFA500"));
|
|
//
|
|
// log.info("resultVo:{}", resultVo);
|
|
|
|
|
|
// }
|
|
|
|
}
|