Skip to content

Commit d8dead2

Browse files
author
zhangjifeng
committed
添加获取指定时间间隔后的日期
1 parent 6e81da4 commit d8dead2

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

utilcode/src/main/java/com/blankj/utilcode/util/TimeUtils.java

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,4 +1155,98 @@ public static String getZodiac(int month, int day) {
11551155
? month - 1
11561156
: (month + 10) % 12];
11571157
}
1158+
1159+
/**
1160+
* 与给定时间间隔millis的日期
1161+
* @param time 指定时间
1162+
* @param millis 间隔的毫秒数
1163+
* @return 默认格式的新日期
1164+
*/
1165+
public static String getDateStringAfterTimeSpan(String time, long millis) {
1166+
return millis2String(string2Millis(time) + millis);
1167+
}
1168+
1169+
/**
1170+
* 与给定时间间隔millis的日期
1171+
* @param time 指定的原时间
1172+
* @param pattern 时间格式
1173+
* @param millis 间隔的毫秒数
1174+
* @return 给定格式的日期字符串
1175+
*/
1176+
public static String getDateStringAfterTimeSpan(String time, String pattern, long millis) {
1177+
return millis2String(string2Millis(time, pattern) + millis, pattern);
1178+
}
1179+
1180+
/**
1181+
* 与给定时间指定间隔的日期
1182+
* @param time 指定的原时间
1183+
* @param pattern 时间格式
1184+
* @param timeSpanNum 时间间隔数
1185+
* @param unit 时间间隔单位
1186+
* @return 计算后的新时间格式化后的字符串
1187+
*/
1188+
public static String getDateStringAfterTimeSpan(String time, String pattern, long timeSpanNum, @TimeConstants.Unit int unit) {
1189+
return millis2String(getDateStringAfterTimeSpan(string2Millis(time, pattern), timeSpanNum, unit), pattern);
1190+
}
1191+
/**
1192+
* 与给定时间间隔millis的日期
1193+
* @param timeMillis 指定的原时间的时间戳
1194+
* @param timeSpanNum 时间间隔数
1195+
* @param unit 时间间隔单位
1196+
* @return 计算后的新时间的时间戳
1197+
*/
1198+
private static long getDateStringAfterTimeSpan(long timeMillis, long timeSpanNum, @TimeConstants.Unit int unit) {
1199+
int unitMultiple = 1;
1200+
switch (unit) {
1201+
case TimeConstants.DAY:
1202+
unitMultiple = 1000 * 60 * 60 * 24;
1203+
break;
1204+
case TimeConstants.HOUR:
1205+
unitMultiple = 1000 * 60 * 60;
1206+
break;
1207+
case TimeConstants.MIN:
1208+
unitMultiple = 1000 * 6;
1209+
break;
1210+
case TimeConstants.SEC:
1211+
unitMultiple = 1000;
1212+
break;
1213+
case TimeConstants.MSEC:
1214+
unitMultiple = 1;
1215+
break;
1216+
}
1217+
return timeMillis + timeSpanNum * unitMultiple;
1218+
}
1219+
1220+
/**
1221+
* 与给定时间间隔millis的日期
1222+
* @param time 指定时间
1223+
* @param millis 时间间隔
1224+
* @return 新日期
1225+
*/
1226+
public static Date getDateAfterTimeSpan(String time, long millis) {
1227+
return millis2Date(string2Millis(time) + millis);
1228+
}
1229+
1230+
/**
1231+
* 与给定时间间隔millis的日期
1232+
* @param time 指定时间
1233+
* @param pattern 时间格式
1234+
* @param millis 时间间隔
1235+
* @return 新日期
1236+
*/
1237+
public static Date getDateAfterTimeSpan(String time, String pattern, long millis) {
1238+
return millis2Date(string2Millis(time, pattern) + millis);
1239+
}
1240+
1241+
/**
1242+
*与给定时间指定间隔的日期
1243+
* @param time 原时间
1244+
* @param pattern 时间格式
1245+
* @param timeSpanNum 时间间隔数
1246+
* @param unit 时间间隔单位
1247+
* @return 计算后的新日期
1248+
*/
1249+
public static Date getDateAfterTimeSpan(String time, String pattern, long timeSpanNum, @TimeConstants.Unit int unit) {
1250+
return millis2Date(getDateStringAfterTimeSpan(string2Millis(time, pattern), timeSpanNum, unit));
1251+
}
11581252
}

0 commit comments

Comments
 (0)