|
@@ -5,6 +5,8 @@ import androidx.appcompat.app.AppCompatActivity;
|
|
|
import android.content.ClipData;
|
|
|
import android.content.ClipboardManager;
|
|
|
import android.content.Context;
|
|
|
+import android.icu.text.SimpleDateFormat;
|
|
|
+import android.net.ParseException;
|
|
|
import android.os.Bundle;
|
|
|
import android.provider.ContactsContract;
|
|
|
import android.text.Editable;
|
|
@@ -57,8 +59,9 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
@Override
|
|
|
public void afterTextChanged(Editable editable) {
|
|
|
+ String text = text_date.getText().toString();
|
|
|
|
|
|
- if(text_date.getText().length() == 8)
|
|
|
+ if(isValidDate(text))
|
|
|
{
|
|
|
String szDate = "AQTpDPZ2+"+text_date.getText();
|
|
|
text_pw.setText(stringToMD5(szDate).substring(26,32));
|
|
@@ -75,6 +78,25 @@ public class MainActivity extends AppCompatActivity {
|
|
|
btn_reset.callOnClick();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public boolean isValidDate(String str) {
|
|
|
+ if(str.length() != 8) return false;
|
|
|
+
|
|
|
+
|
|
|
+ boolean convertSuccess = true;
|
|
|
+ //指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
|
|
|
+ try {
|
|
|
+ //设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
|
|
|
+ format.setLenient(false);
|
|
|
+ format.parse(str);
|
|
|
+ } catch (ParseException | java.text.ParseException e) {
|
|
|
+ convertSuccess=false;
|
|
|
+ }
|
|
|
+ return convertSuccess;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public String stringToMD5(String plainText) {
|
|
|
byte[] secretBytes = null;
|
|
|
try {
|