PDA

View Full Version : مبتدی: اختلاف بین دو تاریخ شمسی



mohammad1314
چهارشنبه 21 خرداد 1393, 17:24 عصر
سلام. من در تاپیک قبلیم ، سوال کردم که چجوری میشه یه تاریخ میلادی رو به شمسی تبدیل کنیم و چطور میتونم سه روز رو به یه تاریخ اضافه کنم که مشکلم حل شد.
حالا من میخوام اختلاف بین دو تا تاریخ شمسی رو که داخل دو تا تکست باکس هست رو به دست بیارم..
حالا من باید اون ها رو به میلادی تبدیل کنم بعد اختلافشون رو به دست بیارم یا راه دیگه ای هم هست ؟
اگه باید به میلادی تبدیل کنم ، لطفا نحوه تبدیلش رو هم بگین.
ممنون

Amir4317
چهارشنبه 21 خرداد 1393, 18:13 عصر
با استفاده از کلاس Persian Date و متد استاتیک زیر

public static int Compare(PersianDate firstPersianDate, PersianDate secondPersianDate)

مقدار int حاصل از مقایسه رو بدست میارید.

var day1 = new PersianDate(1393,03,01);
var day2 = new PersianDate(1393,03,21);
var destance = PersianDate.Compare(day1, day2);
MessageBox.Show(destance + @" روز فاصله دارد");

mohammad1314
چهارشنبه 21 خرداد 1393, 18:25 عصر
ولی دو تاریخ من داخل تکست باکس هست و ثابت نیست؟

Amir4317
چهارشنبه 21 خرداد 1393, 18:36 عصر
خواهش میکنم از قوه تخیلتون استفاده کنید و با مشکلات مثل یک بازی فکری برخورد کنید :اشتباه:

به ورودی های تابع دقت کنید.
برای راهنمایی: از تابع جداکننده Splite استفاده کنید. :چشمک:

golestan1
پنج شنبه 22 خرداد 1393, 00:59 صبح
نیازی نیست به میلادی تبدیل کنی جاهایی رو که کامنت کردم به یک پروژه جدید اد کن
و بعد تاریخ رو در تکست باکس وارد کن
3 تکست باکس و یک دکمه رو اد کن


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//یوزینگ تاریخ شمسی
//using System.Globalization;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//تبدیل تاریخ به شمسی
//public string Miladi2Shamsi(DateTime _date)
//{
// PersianCalendar pc = new PersianCalendar();
// StringBuilder sb = new StringBuilder();
// sb.Append(pc.GetYear(_date).ToString("0000"));
// sb.Append("/");
// sb.Append(pc.GetMonth(_date).ToString("00"));
// sb.Append("/");
// sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
// return sb.ToString();
//}

private void Form1_Load(object sender, EventArgs e)
{
//فراخوانی تاریخ تبدیل شده به شمسی
//string today = Miladi2Shamsi(DateTime.Now);
//textBox2.Text = today;
}

private void button1_Click(object sender, EventArgs e)
{

// DateTime dt1;
// DateTime dt2;
//dt1=Convert.ToDateTime (textBox1.Text);
//dt2 = Convert.ToDateTime(textBox2.Text);
//textBox3.Text = (dt1 - dt2).TotalDays.ToString();
}
}
}