欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发(时间管理项目)

程序员文章站 2022-06-18 10:36:33
acm 显示日历 。acD 显示当天设置acm 显示当天jb 时长, 当月jb 总时长。切换月的时候重新算当月时长。切换日的时候,显示当天jb 时长。切换日的时候: 获取年月日。切换月的时候: 获取年月 。acd 显示 是否为工作日 , 上班时间, 下班时间。 标题。 jb 时间。...

acm 显示日历 。

acD 显示当天设置


acm 显示当天jb 时长, 当月jb 总时长。
切换月的时候重新算当月时长。
切换日的时候,显示当天jb 时长。

切换日的时候: 获取年月日。
切换月的时候: 获取年月 。

acd 显示 是否为工作日 , 上班时间, 下班时间。  标题。 jb 时间。 设置按钮

acd 是否为工作日 , 上班时间, 下班时间。  jb 时间的逻辑:
先获取当天信息, 如果有,则取db中的值进行赋值。
如果没有, 则获取当天星期, 1-5 为工作日, 6 和7 为非工作日。

如果没有,工作日上班时间为830 , 下班为 1740 ,非工作日上下班为900-900

标题: db 有就直接显示, 没有就算一下jb 。 如果是工作日 ,则jb= cha - 8小时。
否则jb=差。

按钮逻辑:
如果没有记录, 则insert , 否则update 。

db 全局变量问题。

db 接口对外接口 :
查询当月jb 总时间: 输入 年, 月 int ,返回分钟  int 。

查询当天信息, 输入年, 月,日, int , 返回  int flg  , 上班时间 {时,分}   , 下班时间 {时,分} 。  jb时间 分钟。


insertOrupdate 当天信息:  输入 年月日, flg , 上班下班时间  {时,分}, jb 时间。



package com.example.mtestdb;

public class JBInfo {
    MTime start;

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    MTime end;

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    int year;
    int month;

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    int day;

    boolean workdayFlg ;

    public int getJbMinute() {
        return jbMinute;
    }

    public void setJbMinute(int jbMinute) {
        this.jbMinute = jbMinute;
    }

    int jbMinute;

    public boolean isWorkdayFlg() {
        return workdayFlg;
    }

    public void setWorkdayFlg(boolean workdayFlg) {
        this.workdayFlg = workdayFlg;
    }

    JBInfo(MTime s, MTime e, int year, int month, int day , boolean flg , int jb){
        this.start =s ;
        this.end =s;
        this.year =year;
        this.month =month;
        this.day =day;
        this.workdayFlg =flg;
        this.jbMinute = jb;

    }
    MTime getStart (){
        return  this.start;
    }

    MTime getEnd(){
        return  this.end;
    }



} 


package com.example.mtestdb;

public class MTime {
    int hour;
    int minute;

    MTime(int i , int j){
        this.hour =i;
        this.minute =j;

    }


    void setTime(int i , int j ){
         this.hour = i;
         this.minute =j;
    }

    int getHour (){
        return  this.hour;
    }

    int getMinute (){
        return  this.minute;
    }



} 



package com.example.mtestdb;


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

import java.security.spec.ECField;

public class DBHelper extends SQLiteOpenHelper {

    private final static String DATABASE_NAME = "jb.db";
    private final static int DATABASE_VERSION = 1;
    private final String TABLE_NAME_JB = "JB";

    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        final String string = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME_JB + " (" +
                "id" + " INTEGER  PRIMARY KEY AUTOINCREMENT , " +
                "year" + " INTEGER, " + "month" + " INTEGER, " + "day" + " INTEGER, " + "workday_flg" + " INTEGER, " +
                "start_time" + " INTEGER, " + "end_time" + " INTEGER, " + "jb_minute" + " INTEGER );";

        try {
            db.execSQL(string);
        } catch (Exception e) {
            Log.e("111", "get insert ss11111111 ");
        }
    }


    public void insertOrUpdateJb(SQLiteDatabase db, JBInfo jbInfo) {

    }

    public int getCurrentDayJb(SQLiteDatabase db, JBInfo jbInfo) {

        int year = jbInfo.getYear();
        int month = jbInfo.getMonth();
        int day = jbInfo.getDay();
        
        Cursor cursor = db.query(TABLE_NAME_JB, new String[]{"jb_minute"}, "year=? & month=? & day=?", new String[]{Integer.toString(year)  , Integer.toString(month)  ,  Integer.toString(day)}, null, null, null);
        if(cursor.getCount() == 0) return  -1;
        
        try {
            cursor.moveToFirst();
            return cursor.getInt(cursor.getColumnIndex("jb_minute"));
        } catch (Exception e) {
            return 0;
        }
    }


    public int getCurrentMonthJb(SQLiteDatabase db, JBInfo jbInfo) {

        return 0;
    }
    
   


    public void insertJb(SQLiteDatabase db, JBInfo jbInfo) {
        int year = jbInfo.getYear();
        int month = jbInfo.getMonth();
        int day = jbInfo.getDay();
        
        ContentValues values = new ContentValues();
        values.put("year", year);
        values.put("month", month);
        values.put("date", Integer.toString(year) + "-" + Integer.toString(month) + "-" + Integer.toString(day));
        values.put("xiaoshi", xiaoshi);
        db.insert(TABLE_NAME_JB, null, values);
    }


    public void updateCurrentXiaoshi(SQLiteDatabase db, int year, int month, int day, int xiaoshi) {

        ContentValues values = new ContentValues();
        values.put("xiaoshi", xiaoshi);
        db.update(TABLE_NAME_JB, values, "date=?", new String[]{Integer.toString(year) + "-" + Integer.toString(month) + "-" + Integer.toString(day)});
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//		final String DROP_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;
//		db.execSQL(DROP_TABLE);
//		onCreate(db);
    }

} 
相关标签: android