Kondisi jika a = b or c

public static void main(String []args) throws ParseException{
        String start = "14/04/2020";
		String end = "15/04/2020";
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		Date today = new Date();
		Date startDate = sdf.parse(start);
		Date endDate = sdf.parse(end);

    if (today.after(startDate) == today.before(endDate)) {
			System.out.println("aktif");
		} else {
			System.out.println("not aktif");
		}
     }

saya ada case di atas, yang saya mau jika hari ini sama dengan tglawal or hari ini sama dengan tglakhir itu aktif, bagaimana penyelesaiannya, karna output dari case di atas masih not aktif

avatar GalihPramana06
@GalihPramana06

41 Kontribusi 1 Poin

Diperbarui 4 tahun yang lalu

1 Jawaban:

Logic if yang kamu gunakan tidak sesuai dengan pertanyaan, kenapa saya sebut demikian :

  1. Fungsi after() dan before() akan mengembalikan bolean (true/false)
  2. today.after(startDate) sama dengan jika hari ini lebih besar dr startDate (TglAwal) dan utk before() adlh kebalikannya
  3. Sementara pertanyaannya adalah membandingkan hari ini sama dg startDate or endDate , bukan lebih besar atau lebih kecil

NB: Dari contoh yg kamu buat, tentu saja output 'not aktif' karena, <pre> if (today.after(startDate) == today.before(endDate)) { System.out.println("aktif"); } else { System.out.println("not aktif"); } // today.after(startDate) hasilnya true // today.before(endDate) hasilnya false // Output akan menjadi 'aktif' jika tglAkhir kamu rubah jd '16/04/2020' atau lebih besar lagi </pre>

avatar Rismal
@Rismal

131 Kontribusi 105 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban