Ask Java, Cara membuat nomor faktur

selamat pagi master-master, mau bertanyak lagi nih hehehe

bagaimana caranya membuat nomor faktur yang ketika tanggal berganti kembali ke nomor 001, misalnya

tanggal hari ini 29 Maret 2018 29032018001 29032018002 29032018003 29032018004 29032018005 dst

ketika tanggal berganti 30 Maret 2018 30032018001 30032018002 dst

mohon pencerahannya master-master

avatar ariflanitaman1
@ariflanitaman1

21 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

7 Jawaban:

Saya coba bantu logic nya:


public autoNumber(){

//pertama cek dulu apakah "faktur terakhir yg disimpan" sama dengan "hari ini"
Date maxDate = "SELECT MAX (tanggal) AS "MaxDate" FROM Faktur";
Date today = new Date();

if (maxDate != today){
//Jika faktur terakhir tidak sama, maka akan membuat faktur baru dari 001
String noFaktur = today + "001";

} else {
//Jika sama dengan today, maka akan ambil nofaktur akhir hari ini
String noFaktur = "SELECT noFaktur FROM Faktur";
noFaktur = Substr(noFaktur, 8); //ambil 3 digit terakhir dengan substring

//ubah format noFaktur "001" menjadi "1" dan lakukan penambahan;
int noFakturTerbaru = String.format("%03d", noFaktur); //hasilnya 1

noFakturTerbaru++; //hasilnya 2

//buat noFaktur Baru untuk di insert ke database
String noFakturBaru = today + "00" + String.valueOf(noFakturTerbaru);
sql = "Insert into Faktur set noFaktur = " + noFakturBaru ;
}
}

**sory codingannya salah2, tapi logic nya seperti itu **untuk Date nya silahkan di parse formatnya, bisa dengan SimpleDateFormat **untuk SQL Query silahkan dengan metode yg digunakan

jika ada error boleh ditanyakan lagi, terimakasih

avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 6 tahun yang lalu

terima kasih sudah merespon pertanyaan saya, saya akan coba logic yang agan berikan heheheh

avatar ariflanitaman1
@ariflanitaman1

21 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Maaf gan, ane sudah coba tapi masih belum berhasil hehehe, mohon responnya

avatar ariflanitaman1
@ariflanitaman1

21 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

error dimana?

avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 5 tahun yang lalu

Di bagian if nya bang, mohon bantuannya

avatar ariflanitaman1
@ariflanitaman1

21 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Jawaban Terpilih

"Di bagian if nya bang, mohon bantuannya"

untuk membandingkan Date, bisa pakai:

1. Date.compareTo()

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

public class TestDate {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println("date1 : " + sdf.format(date1));
        System.out.println("date2 : " + sdf.format(date2));

        if (date1.compareTo(date2) > 0) {
            System.out.println("Date1 is after Date2");
        } else if (date1.compareTo(date2) < 0) {
            System.out.println("Date1 is before Date2");
        } else if (date1.compareTo(date2) == 0) {
            System.out.println("Date1 is equal to Date2");
        } else {
            System.out.println("How to get here?");
        }

    }

}

2. Date.before(), Date.after() and Date.equals()

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

public class TestDate2 {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println("date1 : " + sdf.format(date1));
        System.out.println("date2 : " + sdf.format(date2));

        if (date1.after(date2)) {
            System.out.println("Date1 is after Date2");
        }

        if (date1.before(date2)) {
            System.out.println("Date1 is before Date2");
        }

        if (date1.equals(date2)) {
            System.out.println("Date1 is equal Date2");
        }

    }

}

3. Calender.before(), Calender.after() and Calender.equals()

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TestDate3 {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println("date1 : " + sdf.format(date1));
        System.out.println("date2 : " + sdf.format(date2));

        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        cal1.setTime(date1);
        cal2.setTime(date2);

        if (cal1.after(cal2)) {
            System.out.println("Date1 is after Date2");
        }

        if (cal1.before(cal2)) {
            System.out.println("Date1 is before Date2");
        }

        if (cal1.equals(cal2)) {
            System.out.println("Date1 is equal Date2");
        }
    }

}

4. Java 8

 import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class TestDate4 {

    public static void main(String[] args) {

        DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date1 = LocalDate.of(2009, 12, 31);
        LocalDate date2 = LocalDate.of(2010, 01, 31);

        System.out.println("date1 : " + sdf.format(date1));
        System.out.println("date2 : " + sdf.format(date2));

        System.out.println("Is...");
        if (date1.isAfter(date2)) {
            System.out.println("Date1 is after Date2");
        }

        if (date1.isBefore(date2)) {
            System.out.println("Date1 is before Date2");
        }

        if (date1.isEqual(date2)) {
            System.out.println("Date1 is equal Date2");
        }

        System.out.println("CompareTo...");
        if (date1.compareTo(date2) > 0) {

            System.out.println("Date1 is after Date2");

        } else if (date1.compareTo(date2) < 0) {

            System.out.println("Date1 is before Date2");

        } else if (date1.compareTo(date2) == 0) {

            System.out.println("Date1 is equal to Date2");

        } else {

            System.out.println("How to get here?");

        }
    }

}

link: https://www.mkyong.com/java/how-to-compare-dates-in-java/

avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 5 tahun yang lalu

Terima kasih banyak gan, saya coba dulu informasinya

avatar ariflanitaman1
@ariflanitaman1

21 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban