2017-04-18 82 views
0

我正在寫一個比較代碼的日期,以檢查它是否是新月,並從每月的第一天起將我的餘額重置爲655,000。該代碼應檢查當前日期是否爲等於下個月的第一個月,並且如果當前月不等於下個月,並且假設它是該月的第一筆交易,那麼從中減去我的輸入。現在,緊接着,我應該決定是否輸入新的交易和第一個的成本說是100美元,這意味着我現在有654,900,我想在第二筆交易後餘額爲(654900-(第二筆交易的總成本)),並應遵循套件直至CURRENTDAY = 1和當月== nextmonth那麼整個過程將與新月份的第一天,第一筆交易已經重新開始從減去它的總成本,然後將所有其他交易將遵循一套如何重置月份日期條目

在我的數據庫這個輸出IM expecting.I'm爲不洙準確地解釋很後悔早些時候

**CustomerID||InvoiceID||BalanceDate  ||ChequeSum||CreditSum||CashSum||ReversalSum||Balance** 
201743112026 10286202 2017-04-18 13:12:01 100.0  0.0   0.0  0.0  654900 (655000-100) 
201743112021 10476202 2017-04-18 13:12:09 609.0  0.0   0.0  0.0  654291 (654900-100) 

private void dayCount() { 
    Date theDate = new Date(); 
    Calendar myCal = new GregorianCalendar(); 
    myCal.setTime(theDate); 
    int currentDay = myCal.get(Calendar.DAY_OF_MONTH); 
    int currentMonth = myCal.get(Calendar.MONTH) + 1; 
    int currentYear = myCal.get(Calendar.YEAR); 
    int nextday = currentDay + 1; 
    int nextMonth = currentMonth + 1; 
    int tempMonth = currentMonth; 

    System.out.println("Day: " + currentDay); 
    System.out.println("Month: " + currentMonth); 
    System.out.println("Year: " + currentYear); 
    System.out.println("nextday: " + nextday); 
    System.out.println("nextMonth: " + nextMonth); 
    System.out.println("tempMonth: " + tempMonth); 

    if (currentDay != 1 && currentMonth == tempMonth && currentMonth != nextMonth) { 
     if (counts == 0) {// count returns zero if no tranction has occured so deduction starts frim 655000 

      if (countz == 0) {// countz returns 0 if no cash,credit or cheque transaction has been computed yet and 1 if vice versa 
       System.out.println("counts value is " + counts); 
       FirstEntry(); 
      } 
     } else if (counts == 1) { 
      if (countz != 0) { 
       System.out.println("counts value is " + counts); 

       LatterEntry(); 
      } 
     } 
    } else { 
     FirstEntry(); 
    } 
} 

/* currentRBalance returns cuurent balance in database */ 
private void FirstEntry() { 
    transT = transType.getSelectedItem().toString(); 
    if (transT.equals("Cash")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, "" + 0.00); 
      ps.setString(5, "" + 0.00); 
      ps.setString(6, ovrallT.getText()); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (655000.0 - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 1 " + e.getMessage()); 
     } 
    } else if (transT.equals("Cheque")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, "" + ovrallT.getText()); 
      ps.setString(5, "" + 0.00); 
      ps.setString(6, "" + 0.00); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (655000.0 - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 2 " + e.getMessage()); 
     } 
    } else if (transT.equals("Credit")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, "" + 0.00); 
      ps.setString(5, "" + ovrallT.getText()); 
      ps.setString(6, "" + 0.00); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (655000.0 - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      countz++; 
      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 3 " + e.getMessage()); 
     } 
    } 
    countz++; 
} 

private void LatterEntry() { 
    transT = transType.getSelectedItem().toString(); 
    if (transT.equals("Cash")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, "" + 0.00); 
      ps.setString(5, "" + 0.00); 
      ps.setString(6, ovrallT.getText()); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (myCurrentRBalance - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      InvDate = ((JTextField) invDate.getDateEditor().getUiComponent()).getText(); 
      System.out.println(invDate + "------"); 
      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 4" + e.getMessage()); 
     } 
    } else if (transT.equals("Credit")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, ovrallT.getText()); 
      ps.setString(5, "" + 0.00); 
      ps.setString(6, "" + 0.00); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (myCurrentRBalance - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      InvDate = ((JTextField) invDate.getDateEditor().getUiComponent()).getText(); 
      System.out.println(invDate + "------"); 
      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 5 " + e.getMessage()); 
     } 
    } else if (transT.equals("Credit")) { 
     try { // actual crud functions can be undertaken 
      stmt = DBConnection.getConnection().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      con = DBConnection.getConnection(); 
      String sql; 
      sql = "insert into reducingbalances (CustomerID, InvoiceID, BalanceDate, ChequeSum, CreditSum, CashSum, ReversalSum, Balance) values (?,?,?,?,?,?,?,?)"; 
      ps = con.prepareStatement(sql); 
      ps.setString(1, code); 
      ps.setString(2, cusInv.getSelectedItem().toString()); 
      ps.setString(3, ((JTextField) invDate.getDateEditor().getUiComponent()).getText()); 
      ps.setString(4, "" + 0.00); 
      ps.setString(5, ovrallT.getText()); 
      ps.setString(6, "" + 0.00); 
      ps.setString(7, "" + 0.00); 
      ps.setString(8, "" + (myCurrentRBalance - Double.parseDouble(invtotal.getText()))); 

      ps.execute(); 

      InvDate = ((JTextField) invDate.getDateEditor().getUiComponent()).getText(); 
      System.out.println(invDate + "------"); 
      JOptionPane.showMessageDialog(this, "Record saved successfully"); 
     } catch (SQLException e) { 
      JOptionPane.showMessageDialog(this, "Unable to insert record 6 " + e.getMessage()); 
     } 
    } 
} 
+0

您是否願意修復代碼中的縮進? –

+0

感謝您的更正 – jaYjaY

+0

我不明白你到底想要做什麼。您能否編輯您的問題並添加投入和預期產出的例子? – 2017-04-18 14:23:15

回答

1

我不太清楚你想要什麼獲取,但我想我可以給你個你想要的,我會相信你把它們放在一起是爲了你的目的。由於您使用的是Java 8,因此要麼從一開始就將您的日期時間作爲java.time類實例,要麼將其轉換爲您得到的java.util.Date。新班級的工作條件非常好,因此無論如何您都需要進行轉換(您轉換爲Calendar),您也可以轉換成更好的班級。下面是如何轉換爲ZonedDateTime

ZonedDateTime theDateTime = theDate.toInstant().atZone(ZoneId.systemDefault()); 
    Month theMonth = theDateTime.getMonth(); 
    boolean isFirstDayOfMonth = theDateTime.getDayOfMonth() == 1; 

的片斷還顯示瞭如何月份和日期的日之日起提取,因爲這些是你在處理所需要的。 Month是一個枚舉,因此您可以使用==安全地比較當前交易的月份與前一筆交易的月份。

+1

除了最後一句話之外,所有的都很好。在對象中使用'=='是一個壞習慣。是的,在這種情況下,它會在技術上使用枚舉,但仍然是一個壞習慣。我建議你改用'.equals'來比較。 'm1.equals(m2)' –

相關問題