ElaKiri Programmer's Club

Sea1men

Well-known member
  • Oct 25, 2015
    889
    413
    63
    හදේ
    ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?:rolleyes:
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,861
    1
    9,626
    113
    Gampaha
    ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?:rolleyes:
    ප්‍රශ්නෙ පැහැදිලි නෑ බන්.

    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>
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,861
    1
    9,626
    113
    Gampaha
    මේක පැහැදිලි කරන්න..
    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));
            }
        }
    }
    Code:
    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));
            }
        }
    }
    Output
    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));
     

    thilihare

    Well-known member
  • Apr 30, 2013
    6,684
    741
    113
    Kandy
    ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?:rolleyes:

    Days walin Gannawa nam meka Use karanan Ahala thiyenne Mekada
    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;
    }
     

    DooA

    Well-known member
  • Jun 22, 2011
    5,202
    773
    113
    ආගිය අතක් නැත
    මේක පැහැදිලි කරන්න..
    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));
            }
        }
    }
    Code:
    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));
            }
        }
    }
    Output
    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 කරලා ගන්න.
     
    Last edited:

    NO_MeRcY

    Well-known member
  • Jun 14, 2010
    5,423
    449
    83
    Singapore
    PASS BY REFERENCE

    උබ මොනවා කලත් පාස් කරන්නේ arrayList එකට තියෙන memory address එක. එකයි ඔහොම වෙන්නේ.
    හරි ගස්සන්න නම්. අලුත් arraylist එකක් හදපන් same values වලින්. නැත්නම් clone කරලා ගන්න.

    Correct :cool::yes:. eth java wala pass by reference kiyala ekak naha. Pass by value witharay.
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,861
    1
    9,626
    113
    Gampaha
    PASS BY REFERENCE


    උබ මොනවා කලත් පාස් කරන්නේ arrayList එකට තියෙන memory address එක. එකයි ඔහොම වෙන්නේ.
    හරි ගස්සන්න නම්. අලුත් arraylist එකක් හදපන් same values වලින්. නැත්නම් clone කරලා ගන්න.
    ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.
     

    DooA

    Well-known member
  • Jun 22, 2011
    5,202
    773
    113
    ආගිය අතක් නැත
    ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.

    clone කරනවා කියන්නේ වෙන වෙනම list දෙකක් තියෙනවා. එක නිසා කොහොම කරත් එකයි.
     

    Sea1men

    Well-known member
  • Oct 25, 2015
    889
    413
    63
    හදේ
    ප්‍රශ්නෙ පැහැදිලි නෑ බන්.

    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


    මෙහෙමයි මචෝ මේක දළු එකතු කරන කෙනෙක්ට හදන software එකක්. දළු දෙන අය
    සාමන්යෙන් මාසෙට දවස් 4ක් වගේ දළු දෙනවනේ.එතකොට දළු දීපු දවස දාල system එක
    update කරනවා.ඊට පස්සේ මාසේ අන්තිමේ බලා ගන්න ඕන මේ කෙනා මේ දවසේ ඉදන් ඒ කියුවේ මාසේ පළවෙනිදා ඉදන් අපි හිතමු 30 වෙනිදා වෙනකන් දවස් කියක් දළු දීලද කියල.
    jdatechooser 2ක් දාල date දෙක අරගන ඒ දින දෙක අතර දළු දීපු දවස් ගානයි කොච්චර දළු දීලා තියෙනවද කියල තමයි බලා ගන්න ඕන.

    මම තාම එක system එකක් වත් හදලා නෑ බන්.මේ පලවෙනි එක හදන්න ගත්ත.දැන් නම් එපා වෙලා බන්.මම self study තමයි කරන්නෙ.institute වල ඉගන ගන්න යාලුවන්ගෙන් එහෙම note ඉල්ලගන්නවා.දන්න එකම language එක ජාවා තමයි.එකත් ලොකුවට බෑ.

    පුලුවන්නම් help එකක් දීපන් මචන්ලා. thanx :):):)
     

    NO_MeRcY

    Well-known member
  • Jun 14, 2010
    5,423
    449
    83
    Singapore
    :yes: :yes:
    නමුත් ඒ value එකට තියෙන්නේ heap එකට reference එක. එකයි මම එහෙම කිව්වේ. කියපු එක වැරදි තමයි

    ow pass wenne copy ekak unaata. original reference ekata point wela tiyenne :yes:
     

    NO_MeRcY

    Well-known member
  • Jun 14, 2010
    5,423
    449
    83
    Singapore
    ක්ලෝන් කරල ගත්තට වැඩක් නෑ. ඩුප්ල්කේට් කලත් හරිගියේ නෑ. වෙනම ලිස්ට් දෙකක් මේන්ටේන් කරන්න ඕනෙ සේම් වැලුයිස් වලින්.

    Object cloning can be used
     

    NO_MeRcY

    Well-known member
  • Jun 14, 2010
    5,423
    449
    83
    Singapore
    ජාවා වලදී jDateChoosers දෙකකින් db එකේ save කරලා තියෙන දින දෙක අතර වෙනස හොයා ගන්නේ කොහොමද?:rolleyes:

    oka depend wenawa table eke date eka save karana format eken. Just SQL statement ekak gahala date diff eka gattaki. eth uba save karana format ekata aniwa samaharawelawata date eka CAST karanna wenawa. mokakda date eka save karanna plan karana format eka? mokada DB eka?

    sample mysql queries would be

    Code:
    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'

    dateChooser eken date eka aragena standard widiyakata format karana ganin table eke save karanna kalin

    Code:
    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");
     
    Last edited:

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,861
    1
    9,626
    113
    Gampaha
    මෙහෙමයි මචෝ මේක දළු එකතු කරන කෙනෙක්ට හදන software එකක්. දළු දෙන අය
    සාමන්යෙන් මාසෙට දවස් 4ක් වගේ දළු දෙනවනේ.එතකොට දළු දීපු දවස දාල system එක
    update කරනවා.ඊට පස්සේ මාසේ අන්තිමේ බලා ගන්න ඕන මේ කෙනා මේ දවසේ ඉදන් ඒ කියුවේ මාසේ පළවෙනිදා ඉදන් අපි හිතමු 30 වෙනිදා වෙනකන් දවස් කියක් දළු දීලද කියල.
    jdatechooser 2ක් දාල date දෙක අරගන ඒ දින දෙක අතර දළු දීපු දවස් ගානයි කොච්චර දළු දීලා තියෙනවද කියල තමයි බලා ගන්න ඕන.

    මම තාම එක system එකක් වත් හදලා නෑ බන්.මේ පලවෙනි එක හදන්න ගත්ත.දැන් නම් එපා වෙලා බන්.මම self study තමයි කරන්නෙ.institute වල ඉගන ගන්න යාලුවන්ගෙන් එහෙම note ඉල්ලගන්නවා.දන්න එකම language එක ජාවා තමයි.එකත් ලොකුවට බෑ.

    පුලුවන්නම් help එකක් දීපන් මචන්ලා. thanx :):):)
    මහලොකු දෙයක් නෑනෙ බන්. පැයක් යයි ඕනෙ නම් ;)
    ඔක්කොම DB එකෙන්ම ගනින්. වැඩේ ඉවරයි. මුලින්ම DB එකේ Save කරපන් දලු ගන්න දවසයි ප්‍රමානයයි.
    Code:
    Table collection---->
    collect_date(date), qty(deciaml 12,3)
    Create Table
    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
    ඊලගට මේ මෙතඩ් එක ලියා ගනින්
    Code:
    private LocalDate getDate(Date date){
        Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
    }
    ඊටපස්සෙ jdatechooser දෙකෙන් එන dates වලට search query ගහපන්.
    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

     
    Last edited:
    • Like
    Reactions: Sea1men

    Sea1men

    Well-known member
  • Oct 25, 2015
    889
    413
    63
    හදේ
    මහලොකු දෙයක් නෑනෙ බන්. පැයක් යයි ඕනෙ නම් ;)
    ඔක්කොම DB එකෙන්ම ගනින්. වැඩේ ඉවරයි. මුලින්ම DB එකේ Save කරපන් දලු ගන්න දවසයි ප්‍රමානයයි.
    Code:
    Table collection---->
    collect_date(date), qty(deciaml 12,3)
    Create Table
    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
    ඊලගට මේ මෙතඩ් එක ලියා ගනින්
    Code:
    private LocalDate getDate(Date date){
        Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
    }
    ඊටපස්සෙ jdatechooser දෙකෙන් එන dates වලට search query ගහපන්.
    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



    Thanx for the help machn :love::love::love::love::love::love::love:
     

    Sea1men

    Well-known member
  • Oct 25, 2015
    889
    413
    63
    හදේ
    Code:
    int A=6;
    Top:
    A++;
    if(A==7)
    goto Top;
    cout<<A;

    මේ c++ code එක පැහැදිලි කරලා දෙන්න පුළුවන් කාටද? මේ goto කියන keyword එකෙන් වෙන්නෙ මොකක්ද?:confused:
     
    Last edited:

    thilina91

    Member
    May 28, 2008
    18,560
    858
    0
    New World, Grand Line
    Code:
    int A=6;
    [COLOR=Red]Top:[/COLOR]
    A++;
    if(A==7)
    goto Top;
    cout<<A;
    මේ code එක පැහැදිලි කරලා දෙන්න පුළුවන් කාටද? මේ goto කියන keyword එකෙන් වෙන්නෙ මොකක්ද?:confused:
    goto kiyanne loop ekak hadanne ganna keyward ekak.
    Eken A==7 kiyana condition eka true unama, Top kiyana thanata ta apahu program counter(i.e next instruction to be executed) eka point wenawa.

    Man nam use kale assembly wala microcontroller program karaddi.
     
    • Like
    Reactions: Sea1men
    Question number 1;
    Write the c++ code to generate the factorial of a given number using for structure.

    [hint : factorial of 4 is 4*3*2*1=24]


    Question number 2;
    Write a c++ code to print the following output using while loops.
    2*
    4**
    6***


    මේ ප්‍රශ්න 2ට solutions විස්තර සහිතව පැහැදිලි කරලා දෙන්න පුළුවන් කෙනෙක් ඉන්නවද?:confused: