PDA

View Full Version : سورس تقویم شمسی Date Picker جاوا



farhadsaberi
سه شنبه 12 آبان 1394, 14:38 عصر
سلام،

بنده این سورس تقویم شمسی جاوا رو قبلا نوشته بودم، و دیدم که این سورس شمسی در اینترنت کمیاب هست رو در اختیار عموم قرار دهم. البته وقت نکردم قابلیتهای بیشتری بهش اضافه کنم.

پ.ن : برای استفاده کامل از آن لطفا کتابخونه این سورس را در سایت ICU4J (http://site.icu-project.org/) دانلود نمایید.
پ.ن 2: عکس این تقویم پیوست شد.



/*
/**
*
* @author Farhadsaberi@gmail.com

*/




import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.ULocale;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import javax.swing.*;
public class datePicker {
private ULocale locale = new ULocale("fa_IR@calendar=persian");
private Calendar calendar = Calendar.getInstance(locale);
JLabel l = new JLabel("", JLabel.CENTER);
String day = "";
JDialog d;
private Date nowDate = null; //current date
JButton[] button = new JButton[49];
public datePicker(JFrame parent) {
d = new JDialog();
d.setModal(true);
String[] header = { "شنبه", "یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه" };
JPanel p0 = new JPanel(new GridLayout(1, 20));
JPanel p1 = new JPanel(new GridLayout(7, 7));
p0.setPreferredSize(new Dimension(20, 20));
p1.setPreferredSize(new Dimension(430, 120));
p0.applyComponentOrientation(
ComponentOrientation.RIGHT_TO_LEFT);
p1.applyComponentOrientation(
ComponentOrientation.RIGHT_TO_LEFT);
for (int x = 0; x < button.length; x++) {
final int selection = x;
button[x] = new JButton();
button[x].setFocusPainted(false);
button[x].setBackground(Color.white);
button[x].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
day = button[selection].getActionCommand();
d.dispose();
}
});
if (x < 7) {
p0.add(new JLabel(header[x],JLabel.CENTER));
}
p1.add(button[x]);
}
JPanel p2 = new JPanel(new GridLayout(1, 3));
JButton previous = new JButton();
previous.setIcon(new javax.swing.ImageIcon(getClass().getResource("/MainSource/images/back.png")));
previous.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
moveTo(calendar.MONTH, 1);
}
});
p2.add(previous);
p2.add(l);
JButton next = new JButton();
next.setIcon(new javax.swing.ImageIcon(getClass().getResource("/MainSource/images/next.png")));
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
moveTo(calendar.MONTH, -1);
}
});
p2.add(next);
d.add(p0, BorderLayout.NORTH);
d.add(p1, BorderLayout.CENTER);
d.add(p2, BorderLayout.SOUTH);
d.pack();
d.setLocationRelativeTo(parent);
Calendar now = Calendar.getInstance(locale); //
nowDate = new Date(now.getTimeInMillis());
d.setTitle("تقویم شمسی");
displayDate(now);
d.setVisible(true);
}

public String setPickedDate() {
if (day.equals(""))
return day;
int month= calendar.get(calendar.MONTH)+1;
int year = calendar.get(calendar.YEAR);
String date = l.getText()+"/"+day;
return date;
}

private void displayDate(Calendar now) {
int currentDay = now.get(calendar.DATE);
now.add(calendar.DAY_OF_MONTH, -(now.get(calendar.DATE) - 1)); //
int startIndex = now.get(calendar.DAY_OF_WEEK); //
int year = now.get(calendar.YEAR); //
int month = now.get(calendar.MONTH) + 1; //
int lastDay = this.getLastDayOfMonth(year, month); //
int endIndex = startIndex + lastDay - 1; //
int startday = 1;
for (int x = 0; x < button.length; x++)
button[x].setText("");
for (int i = 0; i < button.length; i++) {
Color temp = button[i].getBackground();
if (temp.equals(Color.BLUE)) {
button[i].setBackground(Color.white);
}
}

for (int i = startIndex; i < button.length; i++) {
if (i >= startIndex && i <= endIndex) {
button[i].setText("" + startday);
if (startday == currentDay) {
button[i].setBackground(Color.BLUE);
}


l.setText(Integer.toString(year) + "/" + Integer.toString(month));
startday++;
} else {
button[i].setText("");
}
}


}
private int getLastDayOfMonth(int year, int month) {
if (month == 1 ||
month == 2 ||
month == 3 ||
month == 4 ||
month == 5 ||
month == 6 ) {
return 31;
}
if (month == 7 ||
month == 8 ||
month == 9 ||
month == 10 ||
month == 11 ) {
return 30;
}
if (month == 12) {
if (isLeapYear(year)) {
return 29;
} else {
return 29;
}
}
return 0;
}
public boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
private void moveTo(int type, int value) {
Calendar now = Calendar.getInstance(locale);
now.setTime(nowDate);
now.add(type, value);
nowDate = new Date(now.getTimeInMillis());
int month= now.get(calendar.MONTH)+1;
int year = now.get(calendar.YEAR);
displayDate(now);
}

public static void main(String[] args) {
try {
javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");


} catch (Exception e) {
}

}
}

rezasa341
پنج شنبه 02 اردیبهشت 1395, 10:13 صبح
با سلام شما میتوانید از لینک زیر Datepicker تاریخ شمسی رو دریافت کنید و در پروژه های java و NetBeans استفاده کنید:چشمک::چشمک::چشمک::چشمک:: شمک::چشمک::چشمک::چشمک::چشمک:

http://sunfile.sellfile.ir/prod-420701-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA+% D8%AA%D9%82%D9%88%DB%8C%D9%85+%D9%81%D8%A7%D8%B1%D 8%B3%DB%8C+%D8%B4%D9%85%D8%B3%DB%8C+DatePicker+%D8 %AF%D8%B1+%D8%AC%D8%A7%D9%88%D8%A7+java+Netbeans.h tml

140079

simran
دوشنبه 16 اسفند 1395, 15:46 عصر
با سلام

وقت شما بخیر

ممنون از کدی که گذاشتید. واقعا کار بسیار با ارزشی انجام دادید. خیلی خوشحالم که توی ایران هم افرادی مثل شما پیدا میشوند که بی هیچ چشمداشتی حاصل تلاششون را در اختیار بقیه قرار بدهند و به اونها کمک کنند.

براتون آرزوی موفقیت روزافزون دارم.
در پناه حق.

simran
دوشنبه 16 اسفند 1395, 15:59 عصر
با عرض سلام و وقت بخیر

در لینکی که گذاشتید هیچ کدی وجود ندارد. برای شما امکانش وجود دارد که سورس کد را در اینجا قرار دهید؟

سپاسگزارم.

simran
دوشنبه 16 اسفند 1395, 16:03 عصر
با سلام شما میتوانید از لینک زیر Datepicker تاریخ شمسی رو دریافت کنید و در پروژه های java و NetBeans استفاده کنید:چشمک::چشمک::چشمک::چشمک:: شمک::چشمک::چشمک::چشمک::چشمک:

http://sunfile.sellfile.ir/prod-420701-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA+% D8%AA%D9%82%D9%88%DB%8C%D9%85+%D9%81%D8%A7%D8%B1%D 8%B3%DB%8C+%D8%B4%D9%85%D8%B3%DB%8C+DatePicker+%D8 %AF%D8%B1+%D8%AC%D8%A7%D9%88%D8%A7+java+Netbeans.h tml

140079


با عرض سلام و وقت بخیر

در لینکی که گذاشتید هیچ کدی وجود ندارد. برای شما امکانش وجود دارد که سورس کد را در اینجا قرار دهید؟

سپاسگزارم.

vahid-p
دوشنبه 16 اسفند 1395, 23:42 عصر
با عرض سلام و وقت بخیر

در لینکی که گذاشتید هیچ کدی وجود ندارد. برای شما امکانش وجود دارد که سورس کد را در اینجا قرار دهید؟

سپاسگزارم.
تو همون سایت چک میکردید، لینکش بود. هر چند فایلشون رایگان نیست و باید خرید کنید. به هر حال این لینکش:
http://sunfile.sellfile.ir/prod-537040-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA+% D8%AA%D9%82%D9%88%DB%8C%D9%85+%D9%81%D8%A7%D8%B1%D 8%B3%DB%8C+%D8%B4%D9%85%D8%B3%DB%8C+DatePicker+%D8 %AF%D8%B1+%D8%AC%D8%A7%D9%88%D8%A7+java+Netbeans.h tml