一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現計算周期性提醒的示例

java實現計算周期性提醒的示例

2019-11-18 14:36Java教程網 JAVA教程

本文分享一個java實現計算周期性提醒的示例,可以計算父親節、母親節這樣的節日,也可以定義如每月最好一個周五,以方便安排會議

可以計算父親節、母親節這樣的節日,也可以定義如每月最好一個周五,以方便安排會議。

 

復制代碼代碼如下:

/**

* @param strdate
*            開始日期,格式為yyyy-MM-dd HH:mm:ss
* @param cyclePriod
*            重復間隔
* @param loopPriod
*            重復類型,m=月,d=日,y=年,w=周,h=小時,f=分鐘,s=秒
*            mn=月正數第幾天,mb=月倒數第幾天,如mb2為倒數第2天
*            w1..7=每周幾,mn1w2=月第一個周2,mb2w4=月倒數第2個周四
*    w后的值可以是多值,w135代表周1、周3、周五
* @param isLunar
*            是否為陰歷,傳入的值必須為陽歷,按陰歷計算后返回的依然是陽歷。目前陰歷只有月和年的計算不同 其他重復類型根據需要再添加
* @return
*/
public static String nextTime(String strdate, int cyclePriod,
String loopPriod, Boolean isLunar) {
String returnValue = "";

 

int[] dates = DateUtils.genDate(strdate);

ChineseCalendar cCalendar = new ChineseCalendar();
cCalendar.setGregorianYear(dates[0]);
cCalendar.setGregorianMonth(dates[1]);
cCalendar.setGregorianDate(dates[2]);

if ("m".equalsIgnoreCase(loopPriod)) // 處理月
{
if (isLunar) {
for (int i = 0; i < cyclePriod; i++) {
cCalendar.nextChineseMonth();
}
returnValue = DateUtils.genDate(cCalendar.getGregorianYear(),
cCalendar.getGregorianMonth(),
cCalendar.getGregorianDate());
} else {
returnValue = DateUtils.calDate(strdate, cyclePriod, 2);
}
} else if ("d".equalsIgnoreCase(loopPriod)) // 處理日
{
returnValue = DateUtils.calDate(strdate, cyclePriod, 5);

} else if ("y".equalsIgnoreCase(loopPriod)) // 處理年
{
if (isLunar) {
cCalendar.addChineseYear(cyclePriod);
returnValue = DateUtils.genDate(cCalendar.getGregorianYear(),
cCalendar.getGregorianMonth(),
cCalendar.getGregorianDate());
} else {
returnValue = DateUtils.calDate(strdate, cyclePriod, 1);
}

} else if ("w".equalsIgnoreCase(loopPriod)) // 處理周
{
returnValue = DateUtils.calDate(strdate, cyclePriod, 3);

} else if ("h".equalsIgnoreCase(loopPriod)) // 處理小時
{
returnValue = TimeUtils.addTime(strdate, 0, cyclePriod);
} else if ("f".equalsIgnoreCase(loopPriod)) // 處理分鐘
{
returnValue = TimeUtils.addTime(strdate, 1, cyclePriod);

} else if ("s".equalsIgnoreCase(loopPriod)) // 處理秒
{
returnValue = TimeUtils.addTime(strdate, 2, cyclePriod);

} else // 處理非常規周期
{
if ("m".equalsIgnoreCase(StringUtils.left(loopPriod, 1))) {
String mnb = loopPriod.substring(1, 2);
String wnb = "";
int mnbValue = 0;
int wnbValue = 0;
if (loopPriod.indexOf("w") > 1) {
wnb = loopPriod.substring(loopPriod.indexOf("w") + 1,
loopPriod.indexOf("w") + 2);
mnbValue = Integer.parseInt(loopPriod.substring(2,
loopPriod.indexOf("w")));
wnbValue = Integer.parseInt(loopPriod.substring(
loopPriod.indexOf("w") + 1, loopPriod.length()));
if ("n".equalsIgnoreCase(mnb)) {
returnValue = getBeforeWeekDay(strdate, mnbValue,
wnbValue);
} else if ("b".equalsIgnoreCase(mnb)) {
returnValue = getBackWeekDay(strdate, mnbValue,
wnbValue);
}

} else {
mnbValue = Integer.parseInt(loopPriod.substring(2,
loopPriod.length())) - 1;
if ("n".equalsIgnoreCase(mnb)) {
returnValue = calDate(giveMonthFirst(strdate),
mnbValue, 5);
} else if ("b".equalsIgnoreCase(mnb)) {
returnValue = calDate(giveMonthLast(strdate),
-mnbValue, 5);

}
}
} else if ("w".equalsIgnoreCase(StringUtils.left(loopPriod, 1))) {
String week = StringUtils.right(loopPriod,
loopPriod.length() - 1);
strdate = calDate(strdate, cyclePriod - 1, 3);
while (true) {

strdate = calDate(strdate, 1, 5);
if (week.indexOf(String.valueOf(getWeekDay(strdate))) >= 0) {
returnValue = strdate;
break;
}
}
}
}

return returnValue;
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九热国产视频 | 精品国产人成亚洲区 | 韩国一大片a毛片女同 | 久久热r在线视频精品 | 天堂成人在线视频 | 短篇同学新婚h系列小说 | 国产久视频 | 亚飞与亚基高清国语在线观看 | 日本艳鉧动漫1~6完整版在 | 日韩一区二区三区免费 | 日本网络视频www色高清免费 | 美女隐私部位视频网站 | ova巨公主催眠1在线观看 | 天天亚洲综合 | 天天草视频 | 亚洲AV无码国产精品色午夜情 | 精品久久久久免费极品大片 | 国产成人精品日本亚洲网站 | 精品国产国偷自产在线观看 | 色播影院性播影院私人影院 | 91久久福利国产成人精品 | 西施打开双腿下面好紧 | 99热精品成人免费观看 | 色综合色狠狠天天久久婷婷基地 | 免费观看国产视频 | 99欧美精品| 搓光美女衣 | 99久久香蕉国产综合影院 | 精精国产www视频在线观看免费 | 韩国三级在线 | 91啪在线观看国产在线 | 精品一区二区三区在线成人 | 欧美日韩国产亚洲一区二区 | 免费国产午夜高清在线视频 | 免费高清视频在线观看 | 亚洲激情欧美 | 精品手机在线1卡二卡3卡四卡 | 韩国女主播一区二区视频 | 亚洲妇熟xxxxx妇色黄 | 无码AV精品一区二区三区 | japanese厕所撒尿 |