Java 无法匹配或比较两个日期

Java 无法匹配或比较两个日期,java,android,sqlite,Java,Android,Sqlite,我无法匹配或比较两个日期,一个来自数据库,另一个是当前日期。我有五个复选框。当第一个用户选中复选框并通过单击“保存”按钮插入其值时。第二次,当他选中2个或更多复选框时,我想按日期更新最后一条记录。我将date设置为该表中的主键 反作用性 package com.example.shakeelmughal.assanislam; import android.content.Context; import android.content.Intent; import android.conten

我无法匹配或比较两个日期,一个来自数据库,另一个是当前日期。我有五个复选框。当第一个用户选中复选框并通过单击“保存”按钮插入其值时。第二次,当他选中2个或更多复选框时,我想按日期更新最后一条记录。我将date设置为该表中的主键

反作用性

package com.example.shakeelmughal.assanislam;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.preference.PreferenceManager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class NamazCounterActivity extends AppCompatActivity {

    DatabaseHelper mydb;
    CheckBox cb1,cb2,cb3,cb4,cb5;
    Button B1,B2,B3;
    TextView tv;
    int vcb1=0,vcb2=0,vcb3=0,vcb4=0,vcb5=0;
    Date date = new Date();
    String a="1";

    public static final String SHARED_PREF = "sharedPrefs";
    public static final String CHECK1 = "check1";
    public static final String CHECK2 = "check2";
    public static final String CHECK3 = "check3";
    public static final String CHECK4 = "check4";
    public static final String CHECK5 = "check5";
    private Boolean chb1,chb2,chb3,chb4,chb5;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_namaz_counter);
        try {
            mydb = new DatabaseHelper(this);
        } catch (IOException e) {
            e.printStackTrace();
        }

        tv = findViewById(R.id.textView24);
        cb1 = findViewById(R.id.namaz1);
        cb2 = findViewById(R.id.namaz2);
        cb3 = findViewById(R.id.namaz3);
        cb4 = findViewById(R.id.namaz4);
        cb5 = findViewById(R.id.namaz5);
        B1 = findViewById(R.id.result);

        B2 = findViewById(R.id.dateee);
        B3 = findViewById(R.id.sumr);

        c_date();

        B1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Cursor c = mydb.getAllData1();
                if (c.moveToFirst())
                {
                    if(mydb.date().equals(c.getString(0)))
                    {
                        Updateingdata();
                    }
                    else
                    {
                        InsertingData();
                    }
                }
                else
                {
                    InsertingData();
                }
                SaveData();
            }
        });

        B3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Cursor c = mydb.getAllData();

                if(c.getCount() == 0)
                {
                    Toast.makeText(NamazCounterActivity.this,"Empty",Toast.LENGTH_SHORT).show();
                }
                StringBuffer stringBuffer = new StringBuffer();
                while (c.moveToNext())
                {
                    stringBuffer.append("ID: " +c.getString(0 )+"\n");
                    stringBuffer.append("Fajar: " +c.getString(1)+"\n");
                    stringBuffer.append("Zohr: " +c.getString(2)+"\n");
                    stringBuffer.append("Asr: " +c.getString(3)+"\n");
                    stringBuffer.append("Magrib: " +c.getString(4)+"\n" );
                    stringBuffer.append("Isha: " +c.getString(5)+"\n");
                }
                showData("Data",stringBuffer.toString());
            }
        });
        //home button
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }

        //functions for save old values
        loadData();
        updateViews();
    }

    //function for going back to previous activity
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId() == android.R.id.home)
            finish();
        return super.onOptionsItemSelected(item);
    }

    public void InsertingData()
    {
        if(cb1.isChecked())
        {
            vcb1 = 1;
        }
        else
        {
            vcb1 = 0;
        }
        if(cb2.isChecked())
        {
            vcb2 = 1;
        }
        else
        {
            vcb2 = 0;
        }
        if(cb3.isChecked())
        {
            vcb3 = 1;
        }
        else
        {
            vcb3 = 0;
        }
        if(cb4.isChecked())
        {
            vcb4 = 1;
        }
        else
        {
            vcb4 = 0;
        }
        if(cb5.isChecked())
        {
            vcb5 = 1;
        }
        else
        {
            vcb5 = 0;
        }

        boolean result = mydb.InsertData(date().toString(),Integer.toString(vcb1),Integer.toString(vcb2),Integer.toString(vcb3),Integer.toString(vcb4),Integer.toString(vcb5));
        if(result == true)
        {
            Toast.makeText(NamazCounterActivity.this, "Prayer Saved",Toast.LENGTH_LONG).show();
        }
        else
        {
            Toast.makeText(NamazCounterActivity.this, "Some Error", Toast.LENGTH_LONG).show();
        }
    }

    public void Updateingdata()
    {
        if(cb1.isChecked())
        {
            vcb1 = 1;
        }
        else
        {
            vcb1 = 0;
        }
        if(cb2.isChecked())
        {
            vcb2 = 1;
        }
        else
        {
            vcb2 = 0;
        }
        if(cb3.isChecked())
        {
            vcb3 = 1;
        }
        else
        {
            vcb3 = 0;
        }
        if(cb4.isChecked())
        {
            vcb4 = 1;
        }
        else
        {
            vcb4 = 0;
        }
        if(cb5.isChecked())
        {
            vcb5 = 1;
        }
        else
        {
            vcb5 = 0;
        }

        boolean res = mydb.UpdateData(B2.getText().toString(),Integer.toString(vcb1),Integer.toString(vcb2),Integer.toString(vcb3),Integer.toString(vcb4),Integer.toString(vcb5));
        if(res == true)
        {
            Toast.makeText(NamazCounterActivity.this,"Data Updated",Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(NamazCounterActivity.this,"Data Not Updated",Toast.LENGTH_SHORT).show();
        }
    }

    //for date ()
    public void c_date() {
        date.setTime(System.currentTimeMillis()); //set to current time
        B2.setText(date.toString());
        SimpleDateFormat dateFormat = new SimpleDateFormat("EEEEEEEEE, MMM dd, yyyy");
        B2.setText(dateFormat.format(date));

    }

    public void SaveData()
    {
        SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF,MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();

        editor.putBoolean(CHECK1, cb1.isChecked());
        editor.putBoolean(CHECK2, cb2.isChecked());
        editor.putBoolean(CHECK3, cb3.isChecked());
        editor.putBoolean(CHECK4, cb4.isChecked());
        editor.putBoolean(CHECK5, cb5.isChecked());

        editor.apply();

    }

    public void loadData()
    {
        SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF,MODE_PRIVATE);
        chb1 = sharedPreferences.getBoolean(CHECK1, false);
        chb2 = sharedPreferences.getBoolean(CHECK2, false);
        chb3 = sharedPreferences.getBoolean(CHECK3, false);
        chb4 = sharedPreferences.getBoolean(CHECK4, false);
        chb5 = sharedPreferences.getBoolean(CHECK5, false);
    }

    public void updateViews()
    {
        cb1.setChecked(chb1);
        cb2.setChecked(chb2);
        cb3.setChecked(chb3);
        cb4.setChecked(chb4);
        cb5.setChecked(chb5);
    }

    public void showData(String title, String message)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(true);
        builder.setTitle(title);
        builder.setMessage(message);
        builder.show();
    }

    public java.sql.Date date()
    {
        long millis=System.currentTimeMillis();
        java.sql.Date date=new java.sql.Date(millis);
        return date;
    }
}
DatabaseHelper.java

package com.example.shakeelmughal.assanislam;

import android.content.ContentValues;
import android.content.Context;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Date;

import static android.content.ContentValues.TAG;
import static java.time.LocalTime.now;

/**
 * Created by Shakeel Mughal on 5/30/2018.
 */

public class DatabaseHelper extends SQLiteOpenHelper {
    public Context context;
    private SQLiteDatabase db2;
    public AssetManager mngr;
    SQLiteDatabase db;
    private Resources mResources;
    private InputStream inputstream = null;
    private final static String Dbname = "NamazCounter.db";
    private final static String Tbname = "DailyWork";
    private final static String Tbname2 = "items";
    private final static String Col_1 = "ID";
    private final static String Col_2 = "Fajar";
    private final static String Col_3 = "Zohr";
    private final static String Col_4 = "Asr";
    private final static String Col_5 = "Magrib";
    private final static String Col_6 = "Isha";


    private final static String NCol_1 = "date_for";
    private final static String NCol_2 = "fajr";
    private final static String NCol_3 = "shurooq";
    private final static String NCol_4 = "dhuhr";
    private final static String NCol_5 = "asr";
    private final static String NCol_6 = "maghrib";
    private final static String NCol_7 = "isha";

    public DatabaseHelper(Context context) throws IOException {
        super(context, Dbname, null, 1);
        this.context = context;
        mResources = context.getResources();

        mngr = context.getAssets();
        db = this.getWritableDatabase();
        db = this.getReadableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //namaz counter
        final String Table1 = "CREATE TABLE "+Tbname+"(ID PRIMARY KEY TEXT, Fajar TEXT, Zohr TEXT, Asr TEXT, Magrib TEXT, Isha TEXT)";
        //for namaz timing
        final String Table2 = "CREATE TABLE "+Tbname2+"(date_for TEXT, fajr TEXT, shurooq TEXT, dhuhr TEXT, asr TEXT, maghrib TEXT,isha TEXT)";

        db.execSQL(Table1);
        db.execSQL(Table2);
        Log.d(TAG, "DataBase Created");

        try {
            readDataToDb(db);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS "+ Tbname);
        db.execSQL("DROP TABLE IF EXISTS "+ Tbname2);
        onCreate(db);



    }

    public void openDatabase() {

        String dbPath = context.getDatabasePath(Dbname).getPath();
        if (db != null) {
            db.isOpen();
            return;
        }
        db = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);
    }

    public void closeDatabase() {
        if (db != null) {
            db.close();
        }
    }

    //Json fun
    private String readJsonDataFromFile() throws IOException {

        StringBuilder builder = new StringBuilder();

        try {
            String jsonDataString = null;

            inputstream = mngr.open("NamazTiming.json");
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(inputstream, "UTF-8"));
            while ((jsonDataString = bufferedReader.readLine()) != null) {
                builder.append(jsonDataString);
            }

        } finally {
            if (inputstream != null) {
                inputstream.close();
            }
        }
        return new String(builder);
    }

    public void readDataToDb(SQLiteDatabase db) throws IOException, JSONException {
        final String date = "date_for";
        final String namaz1 = "fajr";
        final String namaz2 = "shurooq";
        final String namaz3 = "dhuhr";
        final String namaz4 = "asr";
        final String namaz5 = "maghrib";
        final String namaz6 = "isha";

        try {
            String jsonDataString = readJsonDataFromFile();
            JSONArray jsonfileJSONArray = new JSONArray(jsonDataString);
            for (int i = 0; i < jsonfileJSONArray.length(); i++) {
                String dateid;
                String nmz1;
                String nmz2;
                String nmz3;
                String nmz4;
                String nmz5;
                String nmz6;


                JSONObject jsonfileObject = jsonfileJSONArray.getJSONObject(i);

                dateid = jsonfileObject.getString(date);
                nmz1 = jsonfileObject.getString(namaz1);
                nmz2 = jsonfileObject.getString(namaz2);
                nmz3 = jsonfileObject.getString(namaz3);
                nmz4 = jsonfileObject.getString(namaz4);
                nmz5 = jsonfileObject.getString(namaz5);
                nmz6 = jsonfileObject.getString(namaz6);

                ContentValues jsonfilevalues = new ContentValues();
                jsonfilevalues.put(NCol_1, dateid);
                jsonfilevalues.put(NCol_2, nmz1);
                jsonfilevalues.put(NCol_3, nmz2);
                jsonfilevalues.put(NCol_4, nmz3);
                jsonfilevalues.put(NCol_5, nmz4);
                jsonfilevalues.put(NCol_6, nmz5);
                jsonfilevalues.put(NCol_7, nmz6);
                long rowID=  db.insert(Tbname2, null, jsonfilevalues);
                if(rowID>-1){
                    int catid=0;
                    Cursor cursor = db.rawQuery("SELECT "+ NCol_1 + " FROM "+ Tbname2+" where "+ NCol_1 + "='" + now() + "'" , null);
                    cursor.moveToFirst();
                    if (cursor.moveToNext()) {
                        catid = (cursor.getInt(0));
                    }

                    cursor.close();
                    JSONArray jsonitemsarray= (JSONArray) jsonfileObject.get("itemsList");
                    readitem(db,jsonitemsarray);
                }

                Log.d(TAG, "Inserted sucessfully" + jsonfilevalues);
            }
        } catch (JSONException e) {
            Log.e(TAG, e.getMessage(), e);
            e.printStackTrace();
        }

    }


    private void readitem(SQLiteDatabase db,JSONArray jsonfileJSONArray) throws IOException, JSONException {

        final String date1 = "date_for";
        final String namaz1 = "fajr";
        final String namaz2 = "shurooq";
        final String namaz3 = "dhuhr";
        final String namaz4 = "asr";
        final String namaz5 = "maghrib";
        final String namaz6 = "isha";

        try {

            for (int i = 0; i < jsonfileJSONArray.length(); i++) {


                String Did;
                String nmzz1 ;
                String nmzz2 ;
                String nmzz3 ;
                String nmzz4 ;
                String nmzz5 ;
                String nmzz6 ;

                JSONObject jsonfileObject1 = jsonfileJSONArray.getJSONObject(i);


                Did = jsonfileObject1.getString(date1);
                nmzz1 = jsonfileObject1.getString(namaz1);
                nmzz2 = jsonfileObject1.getString(namaz2);
                nmzz3 = jsonfileObject1.getString(namaz3);
                nmzz4 = jsonfileObject1.getString(namaz4);
                nmzz5 = jsonfileObject1.getString(namaz5);
                nmzz6 = jsonfileObject1.getString(namaz6);



                ContentValues jsonfilevalues1 = new ContentValues();

                jsonfilevalues1.put(NCol_1, Did);
                jsonfilevalues1.put(NCol_2, nmzz1);
                jsonfilevalues1.put(NCol_3, nmzz2);
                jsonfilevalues1.put(NCol_4, nmzz3);
                jsonfilevalues1.put(NCol_5, nmzz4);
                jsonfilevalues1.put(NCol_6, nmzz5);
                jsonfilevalues1.put(NCol_7, nmzz6);
                db.insert(Tbname2, null, jsonfilevalues1);

                Log.d(TAG, "Inserted sucessfully" + jsonfilevalues1);
            }
        } catch (JSONException e) {
            Log.e(TAG, e.getMessage(), e);
            e.printStackTrace();
        }

    }

    //inserting for counter
    public boolean InsertData(String d_date, String Fjr, String zhr, String assr, String mgrb, String isa)
    {
        SQLiteDatabase db = this.getReadableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Col_1,d_date);
        contentValues.put(Col_2,Fjr);
        contentValues.put(Col_3,zhr);
        contentValues.put(Col_4,assr);
        contentValues.put(Col_5,mgrb);
        contentValues.put(Col_6,isa);
        long success = db.insert(Tbname,null,contentValues);
        if(success == -1)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

    public boolean UpdateData(String id,String n1, String n2, String n3,String n4,String n5)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(Col_1,id);
        contentValues.put(Col_2,n1);
        contentValues.put(Col_3,n2);
        contentValues.put(Col_4,n3);
        contentValues.put(Col_3,n4);
        contentValues.put(Col_4,n5);

        db.update(Tbname,contentValues,"ID = ?", new String[]{id});
        return true;
    }

    public Cursor getAllDataForNamaz()
    {
        openDatabase();
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cs = db.rawQuery("SELECT * FROM "+ Tbname2 + " WHERE date_for = "+ date(),null);
        closeDatabase();
        return cs;
    }
    public Date date()
    {
        long millis=System.currentTimeMillis();
        java.sql.Date date=new java.sql.Date(millis);
        return date;
    }

    public Cursor getAllData()
    {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cs = db.rawQuery("SELECT * FROM  "+ Tbname,null);
        return cs;
    }



    public Cursor getAllData1()
    {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cs = db.rawQuery("SELECT ID FROM  "+ Tbname,null);
        return cs;
    }
}
package com.example.shakelmughal.assanislam;
导入android.content.ContentValues;
导入android.content.Context;
导入android.content.res.AssetManager;
导入android.content.res.Resources;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.util.Log;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.sql.Date;
导入静态android.content.ContentValues.TAG;
导入静态java.time.LocalTime.now;
/**
*沙克尔·莫卧儿于2018年5月30日创作。
*/
公共类DatabaseHelper扩展了SQLiteOpenHelper{
公共语境;
私有数据库db2;
公共资产管理人mngr;
sqlitedb数据库;
私人资源;
私有InputStream InputStream=null;
私有最终静态字符串Dbname=“NamazCounter.db”;
私有最终静态字符串Tbname=“DailyWork”;
私有最终静态字符串Tbname2=“items”;
私有最终静态字符串Col_1=“ID”;
私有最终静态字符串Col_2=“Fajar”;
私有最终静态字符串Col_3=“Zohr”;
专用最终静态字符串Col_4=“Asr”;
专用最终静态字符串Col_5=“Magrib”;
专用最终静态字符串Col_6=“Isha”;
私有最终静态字符串NCol_1=“日期”;
私有最终静态字符串NCol_2=“fajr”;
私有最终静态字符串NCol_3=“shurooq”;
专用最终静态字符串NCol_4=“dhuhr”;
私有最终静态字符串NCol_5=“asr”;
私有最终静态字符串NCol_6=“maghrib”;
私有最终静态字符串NCol_7=“isha”;
公共DatabaseHelper(上下文)引发IOException{
super(context,Dbname,null,1);
this.context=上下文;
mResources=context.getResources();
mngr=context.getAssets();
db=this.getWritableDatabase();
db=this.getReadableDatabase();
}
@凌驾
public void onCreate(SQLiteDatabase db){
//纳马兹计数器
最终字符串Table1=“CREATE TABLE”+Tbname+“(ID主键文本、Fajar文本、Zohr文本、Asr文本、Magrib文本、Isha文本)”;
//对于namaz计时
最终字符串Table2=“创建表”+Tbname2+“(文本的日期、fajr文本、shurooq文本、dhuhr文本、asr文本、maghrib文本、isha文本)”;
db.execSQL(表1);
db.execSQL(表2);
Log.d(标记“已创建数据库”);
试一试{
readDataToDb(db);
}捕获(IOE异常){
e、 printStackTrace();
}捕获(JSONException e){
e、 printStackTrace();
}
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果存在删除表”+Tbname);
db.execSQL(“如果存在删除表”+Tbname2);
onCreate(db);
}
公共void openDatabase(){
字符串dbPath=context.getDatabasePath(Dbname).getPath();
如果(db!=null){
db.isOpen();
回来
}
db=SQLiteDatabase.openDatabase(dbPath,null,SQLiteDatabase.OPEN\u READWRITE);
}
公共数据库(){
如果(db!=null){
db.close();
}
}
//Json乐趣
私有字符串readJsonDataFromFile()引发IOException{
StringBuilder=新的StringBuilder();
试一试{
字符串jsonDataString=null;
inputstream=mngr.open(“NamazTiming.json”);
BufferedReader BufferedReader=新的BufferedReader(
新的InputStreamReader(inputstream,“UTF-8”);
而((jsonDataString=bufferedReader.readLine())!=null){
append(jsonDataString);
}
}最后{
如果(inputstream!=null){
inputstream.close();
}
}
返回新字符串(生成器);
}
public void readDataToDb(SQLiteDatabase db)抛出IOException、jsoneexception{
最终字符串date=“date\u for”;
最终字符串namaz1=“fajr”;
最终字符串namaz2=“shurooq”;
最终字符串namaz3=“dhuhr”;
最终字符串namaz4=“asr”;
最终字符串namaz5=“maghrib”;
最后一个字符串namaz6=“isha”;
试一试{
String jsonDataString=readJsonDataFromFile();
JSONArray jsonfileJSONArray=新的JSONArray(jsonDataString);
for(int i=0;iSystem.currentTimeMillis() // Current timestamp
date.time // timestamp of the SQL Date object

if (timestamp1 > timestamp2) {
    // timestamp1 after timestamp2
} else if (timestamp1 < timestamp2) {
    // timestamp1 before timestamp2
} else {
    // timestamp1 == timestamp2
}
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date strDate = sdf.parse(valid_until);
if (new Date().after(strDate)) {
// define log
}