ප්රශ්නෙ පැහැදිලි නෑ බන්.ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?
//Locale Dependent-----------------
LocalDate toLocalDate1 = Instant.ofEpochMilli(jDateChooser1.getDate().getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate toLocalDate2 = Instant.ofEpochMilli(jDateChooser2.getDate().getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
Period elapsed = Period.between(toLocalDate1, toLocalDate2);
String text = yearsOld + " years " + elapsed.getMonths() + " month(s) " + elapsed.getDays() + " day(s)";
LocalDate toLocalDate1 = LocalDate.parse(date, DateTimeFormatter.ofPattern(format))
SELECT DATEDIFF(date1,date2) FROM <table>
import java.util.Arrays;
import java.util.List;
/**
*
* @author Tharindu
*/
public class ContentTest {
private List<String[]> content;
public void setContent(List<String[]> content) {
this.content = content;
}
public void print(){
System.out.println("Before");
for(String values[] : content){
System.out.println(Arrays.asList(values));
values[0] = "";
}
System.out.println("After");
for(String values[] : content){
System.out.println(Arrays.asList(values));
}
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author Tharindu
*/
public class Run {
public static void main(String[] args) {
List<String[]> list = new ArrayList<>();
list.add(new String[]{"A", "B", "C"});
ContentTest contentTest = new ContentTest();
contentTest.setContent(list);
contentTest.print();
System.out.println("Original List");
for (String values[] : list) {
System.out.println(Arrays.asList(values));
}
}
}
run:
Before
[A, B, C]
After
[, B, C]
Original List
[, B, C]
BUILD SUCCESSFUL (total time: 2 seconds)
contentTest.setContent(Collections.unmodifiableList(list));
contentTest.setContent(new ArrayList<>(list));
ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?
public long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
dont use calendar class.Days walin Gannawa nam meka Use karanan Ahala thiyenne Mekada
use localdate instead. java 8මේක පැහැදිලි කරන්න..
Code:import java.util.Arrays; import java.util.List; /** * * @author Tharindu */ public class ContentTest { private List<String[]> content; public void setContent(List<String[]> content) { this.content = content; } public void print(){ System.out.println("Before"); for(String values[] : content){ System.out.println(Arrays.asList(values)); values[0] = ""; } System.out.println("After"); for(String values[] : content){ System.out.println(Arrays.asList(values)); } } }OutputCode:import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * * @author Tharindu */ public class Run { public static void main(String[] args) { List<String[]> list = new ArrayList<>(); list.add(new String[]{"A", "B", "C"}); ContentTest contentTest = new ContentTest(); contentTest.setContent(list); contentTest.print(); System.out.println("Original List"); for (String values[] : list) { System.out.println(Arrays.asList(values)); } } }
PHP:run: Before [A, B, C] After [, B, C] Original List [, B, C] BUILD SUCCESSFUL (total time: 2 seconds)
ඇයි මේකෙ "A" කියන එක ප්රින්ට් වෙන්නෙ නැත්තෙ. මම ඔරිජිනල් ලිස්ට් එකට මුකුත් කරන්නෙ නෑනෙ. ඒත් ඒක කොහොමද වෙනස් වෙන්නෙ. loop එක ඇතුලෙදි අල්ල ගන්න වේරියබල් එකේ value එක වෙනස් කලාම කොහොමද ඔරිජිනල් ලිස්ට් එකේ values වෙනස් වෙන්නෙ.
මේ විදියට යැව්වත් වෙනස් වෙනව.
Code:contentTest.setContent(Collections.unmodifiableList(list));
මෙහෙම අලුත්ම ලිස්ට් එකක් ක්ලෝන් කරල ඒක යැවුවහමත් ඔරිජිනල් ලිස්ට් එකේ values වෙනස් වෙනවනෙ.
Code:contentTest.setContent(new ArrayList<>(list));
PASS BY REFERENCE
උබ මොනවා කලත් පාස් කරන්නේ arrayList එකට තියෙන memory address එක. එකයි ඔහොම වෙන්නේ.
හරි ගස්සන්න නම්. අලුත් arraylist එකක් හදපන් same values වලින්. නැත්නම් clone කරලා ගන්න.

. eth java wala pass by reference kiyala ekak naha. Pass by value witharay.ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.PASS BY REFERENCE
උබ මොනවා කලත් පාස් කරන්නේ arrayList එකට තියෙන memory address එක. එකයි ඔහොම වෙන්නේ.
හරි ගස්සන්න නම්. අලුත් arraylist එකක් හදපන් same values වලින්. නැත්නම් clone කරලා ගන්න.
Correct. eth java wala pass by reference kiyala ekak naha. Pass by value witharay.

ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.
ප්රශ්නෙ පැහැදිලි නෑ බන්.
jDateChoosers දෙකක් අතර වෙනස ගන්න නම්..,
Code://Locale Dependent----------------- LocalDate toLocalDate1 = Instant.ofEpochMilli(jDateChooser1.getDate().getTime()).atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate toLocalDate2 = Instant.ofEpochMilli(jDateChooser2.getDate().getTime()).atZone(ZoneId.systemDefault()).toLocalDate(); Period elapsed = Period.between(toLocalDate1, toLocalDate2); String text = yearsOld + " years " + elapsed.getMonths() + " month(s) " + elapsed.getDays() + " day(s)";
String Date දෙකක් අතර වෙනස ගන්න නම්..,
Code:LocalDate toLocalDate1 = LocalDate.parse(date, DateTimeFormatter.ofPattern(format))
DB එකෙන් Date දෙකක් අතර වෙනස ගන්න නම්
Code:SELECT DATEDIFF(date1,date2) FROM <table>
Days walin Gannawa nam meka Use karanan Ahala thiyenne Mekada



![]()
නමුත් ඒ value එකට තියෙන්නේ heap එකට reference එක. එකයි මම එහෙම කිව්වේ. කියපු එක වැරදි තමයි

ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.
ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?
select WHATEVER from WHATEVERTABLE where `WHATEVERDATE`<='2016-07-31 00:00:00' and `DateTime`>='2016-07-01 00:00:00'
OR
select WHATEVER from WHATEVERTABLE where WHATEVERDATE between '2016-07-31 00:00:00' and '2016-07-01 00:00:00'
SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
SimpleDateFormat sdf= new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
මහලොකු දෙයක් නෑනෙ බන්. පැයක් යයි ඕනෙ නම්මෙහෙමයි මචෝ මේක දළු එකතු කරන කෙනෙක්ට හදන software එකක්. දළු දෙන අය
සාමන්යෙන් මාසෙට දවස් 4ක් වගේ දළු දෙනවනේ.එතකොට දළු දීපු දවස දාල system එක
update කරනවා.ඊට පස්සේ මාසේ අන්තිමේ බලා ගන්න ඕන මේ කෙනා මේ දවසේ ඉදන් ඒ කියුවේ මාසේ පළවෙනිදා ඉදන් අපි හිතමු 30 වෙනිදා වෙනකන් දවස් කියක් දළු දීලද කියල.
jdatechooser 2ක් දාල date දෙක අරගන ඒ දින දෙක අතර දළු දීපු දවස් ගානයි කොච්චර දළු දීලා තියෙනවද කියල තමයි බලා ගන්න ඕන.
මම තාම එක system එකක් වත් හදලා නෑ බන්.මේ පලවෙනි එක හදන්න ගත්ත.දැන් නම් එපා වෙලා බන්.මම self study තමයි කරන්නෙ.institute වල ඉගන ගන්න යාලුවන්ගෙන් එහෙම note ඉල්ලගන්නවා.දන්න එකම language එක ජාවා තමයි.එකත් ලොකුවට බෑ.
පුලුවන්නම් help එකක් දීපන් මචන්ලා. thanx![]()

Table collection---->
collect_date(date), qty(deciaml 12,3)
CREATE TABLE `collection` (
`tid` int(11) NOT NULL AUTO_INCREMENT,
`c_name` varchar(300) DEFAULT NULL,
`collect_date` date DEFAULT NULL,
`qty` decimal(12,3) DEFAULT NULL,
PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
private LocalDate getDate(Date date){
Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
}
SELECT * FROM collection WHERE collect_date BETWEEN '"+this.getDate(jDateChooser1.getDate()).toString()+"' AND '"+this.getDate(jDateChooser2.getDate()).toString()+"'
SELECT c_name,COUNT(collect_date),SUM(qty) FROM collection WHERE collect_date BETWEEN '"+this.getDate(jDateChooser1.getDate()).toString()+"' AND '"+this.getDate(jDateChooser2.getDate()).toString()+"' GROUP BY c_name
මහලොකු දෙයක් නෑනෙ බන්. පැයක් යයි ඕනෙ නම්
ඔක්කොම DB එකෙන්ම ගනින්. වැඩේ ඉවරයි. මුලින්ම DB එකේ Save කරපන් දලු ගන්න දවසයි ප්රමානයයි.Create TableCode:Table collection----> collect_date(date), qty(deciaml 12,3)
ඊලගට මේ මෙතඩ් එක ලියා ගනින්Code:CREATE TABLE `collection` ( `tid` int(11) NOT NULL AUTO_INCREMENT, `c_name` varchar(300) DEFAULT NULL, `collect_date` date DEFAULT NULL, `qty` decimal(12,3) DEFAULT NULL, PRIMARY KEY (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1ඊටපස්සෙ jdatechooser දෙකෙන් එන dates වලට search query ගහපන්.Code:private LocalDate getDate(Date date){ Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate(); }එකතුවට මේක ගහපන්Code:SELECT * FROM collection WHERE collect_date BETWEEN '"+this.getDate(jDateChooser1.getDate()).toString()+"' AND '"+this.getDate(jDateChooser2.getDate()).toString()+"'Code:SELECT c_name,COUNT(collect_date),SUM(qty) FROM collection WHERE collect_date BETWEEN '"+this.getDate(jDateChooser1.getDate()).toString()+"' AND '"+this.getDate(jDateChooser2.getDate()).toString()+"' GROUP BY c_name






goto kiyanne loop ekak hadanne ganna keyward ekak.මේ code එක පැහැදිලි කරලා දෙන්න පුළුවන් කාටද? මේ goto කියන keyword එකෙන් වෙන්නෙ මොකක්ද?Code:int A=6; [COLOR=Red]Top:[/COLOR] A++; if(A==7) goto Top; cout<<A;![]()
