بازم که خیلی وقته بروز نشده که
مبدل تاریخ شمسی به میلادی
خودم نوشتم تست کردم جواب داده شما هم قبل استفاده تست کنید بهتره
قابل شما دوستان رو نداره
public class MiladiDate { public String todayMiladi(int y,int m,int d) {
String year = ""+y;
String month = ""+m;
String day = ""+d;
int Y = Integer.valueOf(year);
int M = Integer.valueOf(month);
int D = Integer.valueOf(day);
return Shamsi(Y, M, D);
}
public String Shamsi(int Y, int M, int D)
{
int gDay,gMonth,gYear;
switch(M) {
case 1:
if(D <= 11){
M = 3;
D = D + 20;
}else{
M = 4;
D = D - 11;
}
break;
case 2:
if(D <= 10){
M = 4;
D = D + 20;
}else{
M = 5;
D = D -10;
}
break;
case 3:
if(D <= 10){
M = 5;
D = D + 21;
}else{
M = 6;
D = D - 10;
}
break;
case 4:
if(D <= 9 ){
M = 6;
D = D + 21;
}else{
M = 7;
D = D - 9;
}
break;
case 5:
if( D <= 9){
M = 7;
D = D + 22;
}else{
M = 8;
D = D - 9;
}
break;
case 6:
if(D <= 9){
M = 8;
D = D + 22;
}else{
M=9;
D = D - 9;
}
break;
case 7:
if(D <= 8){
M = 9;
D = D + 22;
}else{
M = 10;
D = D - 8;
}
break;
case 8:
if(D <= 9){
M = 10;
D = D + 22;
}else{
M = 11;
D = D - 9;
}
break;
case 9:
if(D <= 9){
M = 11;
D = D + 21;
}else{
M = 12;
D = D - 9;
}
break;
case 10:
if(D <= 10){
M = 12;
D = D + 21;
}else{
M = 1;
D = D - 10;
}
break;
case 11:
if(D <= 11){
M = 1;
D = D + 20;
}else{
M = 2;
D = D - 11;
}
break;
case 12:
if(D <= 9 ){
M = 2;
D = D + 19 ;
}else{
M = 3;
D = D - 9;
}
break;
}
gDay = D;
gMonth = M;
gYear = Y+621+ (8-gMonth)/6;
return ""+gDay + "/"+gMonth +"/"+gYear;
}
نحوه استفاده :
1) فایلی (Class) که ایجاد میکنید حتما اسمش MiladiDate باشه
2)
MiladiDate MDate = new MiladiDate();
MDate.todayMiladi(1393, 04, 27);
توجه مهم : بایستی تاریخ شمسی رو بصورتی که در نمونه وارد شده وارد کنید تا به تاریخ میلادی تبدیل شود