نمايش تاريخ در ASP به صورت--- مثال: دوشنبه 2 آذر 1383---

mazoolagh

Active Member
اينو يك نگاهي بكن:
http://forum.majidonline.com/mof23792.html

البته فكر نميكنم اشتباه داشته باشه چون ديگه جوابي از طرف amineh نيامد!

هم ميلادي به شمسي داره و هم شمسي به ميلادي. خودت هر جوري خواستي ميتوني شكل خروجيشو عوض كني - يك array تعريف كن از شنبه تا جمعه رو بريز توش (چي گفتم!) روز هفته رو هم با weekday پيدا كن و ازش بعنوان ايندكس اين array استفاده كن تا روز هفته فارسي رو بده. شبيه همين كار رو براي ماههاي سال بكن.
 

<3pehr>

Active Member
سلام گفتم ديگه الكي تاپيك جديد نزنم و همينجا بنويسم اگه مشكل داره بگين حذفش كنم .
مي خواستم بدونم كسي الگوريتم تبديل تاريخ ميلادي به شمسي رو داره اگه داره بذاره البته در موردش توضيح هم بده . ( تو پرانتز بگم من فقط الگوريتمش رو مي خوام )



سپهر
 

mazoolagh

Active Member
سپهر جان!
من الگوريتم مطلق رو سراع ندارم - منظورم از مطلق اينه كه هر تاريخ ميلادي رو با فرمول معيني به تاريخ شمسي استاده كنه.

ولي تو روش خودم از اين استفاده كردم كه اول فروردين 1300 برابر 20 مارس 1921 هست. بعد ميام حساب ميكنم كه تاريخ ميلادي مورد نظر چند روز با 1 مارس 1921 اختلاف داره و ازش 365 يا 366 روز كم ميكنم تا مقدار مانده كمتر از 365 يا 366 بشه و بازاي هر بار كم كردن يكي به سال 1300 اضافه ميكنم. براي تشخيص سال كبيسه از اين استفاده ميكنم كه اگر مانده تقسيم صحيح سال به 4 برابر 3 باشه سال كبيسه است. براي تعيين ماه و روز هم كه ساده است (تو همون كد يك نگاهي بنداز)
 

Borzo

Member
آقا جان این کد کار خودم نیست ولی کارش درسته، با حوندنش الگوریتمش هم دستت میاد، تاریخ سیستم رو می‏گیره و کم و زیاد می‏کنه همه رو هم به فارسی نشون میده، ایول:

کد:
&lt;META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1256">
    &lt;%
    D = Array (20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
    P = Array (11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
    U = 0 
    Rp = 0
    wDays = Array ("íßÔäÈå", "ÏæÔäÈå", "Óå ÔäÈå", "åÇÑÔäÈå", "äÌÔäÈå", "ÌãÚå", "ÔäÈå")
    Months = Array ("ÝÑæÑÏíä", "ÇÑÏíÈåÔÊ", "ÎÑÏÇÏ", "ÊíÑ", "ãÑÏÇÏ", "ÔåÑíæÑ", "ãåÑ", "ÂÈÇä", "ÂÐÑ", "Ïí", "Èåãä", "ÇÓÝäÏ")
    myDay = Day(Date)
    myMonth = Month(Date)
    myYear = Year(Date)
    if (myYear Mod 4) = 0 Then U = 1
    if ((myYear Mod 100) = 0 AND (myYear Mod 400) &lt;> 0) Then U = 0
    Ys = myYear - 622
    X = Ys - 22
    X = X Mod 33
    if ((X Mod 4) = 0 AND X &lt;> 32) Then Rp = 1
    I = Not(Rp-2) + NOT(U - 2) * 2
    X = 0
    if (I = 0 AND myMonth = 3) Then X = 1
    if I = 0 Then I = 3
    Ms = (9 + myMonth) Mod 13
    if Ms &lt; 10 Then Ms = Ms + 1
    D1 = D(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then D1 = D1 - 1
    if (I = 2 AND myMonth &lt; 3) Then D1 = D1 - 1
    P1 = P(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then P1 = P1 + 1
    if (I = 2 AND myMonth &lt; 4) Then P1 = P1 + 1
    if (myDay > 0 AND myDay &lt;= D1) Then
    Ds = P1 + myDay + X - 1
    X = 1
    Else
    Ds = myDay - D1
    Ms = Ms + 1
    if Ms = 13 Then Ms = 1
    X = 2
    End if
    if ((myMonth = 3 AND X = 2) OR myMonth > 3) Then Ys = Ys + 1
    Farsi_Date = wDays(WeekDay(Date) - 1) &amp; " " &amp; Ds &amp; " " &amp; Months(Ms - 1) &amp; " " &amp; Ys
    Response.Write(Farsi_Date)
    %>
 

Borzo

Member
mazoolagh گفت:
فكر ميكنم اين كه آقاي برزو نوشته مطلق حساب ميكنه

دقیقن، از جملهء Ys = myYear - 622 یعنی سال جاری میلادی منهای سال جاری خورشیدی بقیه هم تفاوت ماه و روز را حساب می‏کنه.

سلامت باشی
 

alireza_a4

Member
عزيزم اين برنامه روز رو يه روز كمتر حساب مي كنه

مشكلش كجاس؟

ايام هفته درسته
فقط روز يه كم ( يه روز ) كمتره !!!!!!!!
 

salah

Member
سلام به همگی

خدا خیرتون بده کار منهم به خاطر این تاریخ شمسی گیره
هر کاری میکنم شمسی نمیشه
تو رو خدا اگه کسی بلده چه جوری اینو میشه فارسیش (شمسی)کرد
کمک کنه
چون خیلی خیلی گیرم
مخلص بر و بچ
اینم فایل Date.JS

کد:
// ===================================================================
// Author: Matt Kruse &lt;[email protected]>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================


// ------------------------------------------------------------------
// These functions use the same 'format' strings as the 
// java.text.SimpleDateFormat class, with minor exceptions.
// The format string consists of the following abbreviations:
// 
// Field        | Full Form          | Short Form
// -------------+--------------------+-----------------------
// Year         | yyyy (4 digits)    | yy (2 digits), y (2 or 4 digits)
// Month        | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
// Day of Month | dd (2 digits)      | d (1 or 2 digits)
// Hour (1-12)  | hh (2 digits)      | h (1 or 2 digits)
// Hour (0-23)  | HH (2 digits)      | H (1 or 2 digits)
// Hour (0-11)  | KK (2 digits)      | K (1 or 2 digits)
// Hour (1-24)  | kk (2 digits)      | k (1 or 2 digits)
// Minute       | mm (2 digits)      | m (1 or 2 digits)
// Second       | ss (2 digits)      | s (1 or 2 digits)
// AM/PM        | a                  |
//
// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
// Examples:
//  "MMM d, y" matches: January 01, 2000
//                      Dec 1, 1900
//                      Nov 20, 00
//  "M/d/yy"   matches: 01/20/00
//                      9/2/00
//  "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
// ------------------------------------------------------------------

var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
function LZ(x) {return(x&lt;0||x>9?"":"0")+x}

// ------------------------------------------------------------------
// isDate ( date_string, format_string )
// Returns true if date string matches format of format string and
// is a valid date. Else returns false.
// It is recommended that you trim whitespace around the value before
// passing it to this function, as whitespace is NOT ignored!
// ------------------------------------------------------------------
function isDate(val,format) {
	var date=getDateFromFormat(val,format);
	if (date==0) { return false; }
	return true;
	}

// -------------------------------------------------------------------
// compareDates(date1,date1format,date2,date2format)
//   Compare two date strings to see which is greater.
//   Returns:
//   1 if date1 is greater than date2
//   0 if date2 is greater than date1 of if they are the same
//  -1 if either of the dates is in an invalid format
// -------------------------------------------------------------------
function compareDates(date1,dateformat1,date2,dateformat2) {
	var d1=getDateFromFormat(date1,dateformat1);
	var d2=getDateFromFormat(date2,dateformat2);
	if (d1==0 || d2==0) {
		return -1;
		}
	else if (d1 > d2) {
		return 1;
		}
	return 0;
	}

// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// ------------------------------------------------------------------
function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length &lt; 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format &lt; format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) &amp;&amp; (i_format &lt; format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
		}
	return result;
	}
	
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
	var digits="1234567890";
	for (var i=0; i &lt; val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length &lt; minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
	}
	
// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
//
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the 
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function getDateFromFormat(val,format) {
	val=val+"";
	format=format+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=now.getDate();
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm="";
	
	while (i_format &lt; format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) &amp;&amp; (i_format &lt; format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=_getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"){
			month=0;
			for (var i=0; i&lt;MONTH_NAMES.length; i++) {
				var month_name=MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					month=i+1;
					if (month>12) { month -= 12; }
					i_val += month_name.length;
					break;
					}
				}
			if ((month &lt; 1)||(month>12)){return 0;}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month&lt;1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date&lt;1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh&lt;1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh&lt;0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh&lt;0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh&lt;1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm&lt;0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss&lt;0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&amp;&amp;(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return false; }
			}
		else { if (date > 28) { return false; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return false; }
		}
	// Correct hours value
	if (hh&lt;12 &amp;&amp; ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 &amp;&amp; ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}
 

alireza_a4

Member
alireza_a4 گفت:
عزيزم اين برنامه روز رو يه روز كمتر حساب مي كنه

مشكلش كجاس؟

ايام هفته درسته
فقط روز يه كم ( يه روز ) كمتره !!!!!!!!
كسي نبود مشكل ما رو حل كنه ؟؟؟؟؟؟؟؟؟؟؟؟
 

جدیدترین ارسال ها

بالا