我使用了一种基本技术来实现一种方法,该方法根据格式为YYYY-MM-DD
的给定参数查找第二天的日期,并以相同的格式返回第二天。
请您查看代码并告诉我它是否效率低下?它工作得非常好,但如果可能的话,我宁愿实现一种效率更高,代码行更少的方法。请记住,任何月份或日期的单位数值都必须格式化为十位的0。
public String nextDate(String date){ //ex: 2016-01-31 -returns-> 2016-02-01
int MMrange = 30;
String result = "";
String daystr = date.substring(8,10);
String monthstr = date.substring(5,7);
int day = Integer.parseInt(daystr);
int month = Integer.parseInt(monthstr);
int year = Integer.parseInt(date.substring(0,4));
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) MMrange = 31;
else if(month==2) MMrange = 28;
if(year%4==0&&month==2) MMrange = 29;
if(day==MMrange){
day =1;
month++;
}else if(month==12&&day==31){
year++;
month = 1;
day = 1;
}else{
day++;
}
result = Integer.toString(year)+"-"+Integer.toString(month)+"-"+Integer.toString(day);
if(month <=9&&day<=9) result = Integer.toString(year)+"-0"+Integer.toString(month)+"-0"+Integer.toString(day);
else if(month <= 9) result = Integer.toString(year)+"-0"+Integer.toString(month)+"-"+Integer.toString(day);
else if(day <= 9) result = Integer.toString(year)+"-"+Integer.toString(month)+"-0"+Integer.toString(day);
return result;
}
答案 0 :(得分:1)
试试这个......
更新 //进口......
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public static String getNextdt(String dt) {
try {
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
final Date date = format.parse(dt);
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(format.format(calendar.getTime()));
return format.format(calendar.getTime());
} catch (Exception e) {
}
}
答案 1 :(得分:0)
您应该使用Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If textBox1.ReadOnly
Then TextBox1.BackColor = Color.Blue
End If
End Sub
格式和java.text.DateFormat
进行计算,例如
java.util.Calendar
答案 2 :(得分:0)
如果使用Java 8,则更短的方法是:
LocalDate localDate = LocalDate.now();
localDate.plusDays(1);
System.out.println(localDate.toString());
希望这适合你。