Date Xamarin表单:使用选定日期获取下一个和上一个日期

Date Xamarin表单:使用选定日期获取下一个和上一个日期,date,xamarin.forms,Date,Xamarin.forms,我使用以下代码获取所选日期的下一天和前一天详细信息。我有两个名为“下一个”和“上一个”的按钮来获取下一个日期 //Saving the current date string selectedDate = DateTime.Now.ToString("dd-MM-yyyy"); //Previous day public void PrevButtonClicked(object sender, EventArgs args) { DateTimeOffset dtOffset;

我使用以下代码获取所选日期的下一天和前一天详细信息。我有两个名为“下一个”和“上一个”的按钮来获取下一个日期

//Saving the current date
string selectedDate = DateTime.Now.ToString("dd-MM-yyyy");

//Previous day
public void PrevButtonClicked(object sender, EventArgs args)
{
   DateTimeOffset dtOffset;
   if (DateTimeOffset.TryParse(selectedDate, null, DateTimeStyles.None, out dtOffset))
   {
      DateTime myDate = dtOffset.DateTime;
      selectedDate = myDate.AddDays(-1).ToString("dd-MM-yyyy");
   }
}
//Next day
public void NextButtonClicked(object sender, EventArgs args)
{
    DateTimeOffset dtOffset;
    if (DateTimeOffset.TryParse(selectedDate, null, DateTimeStyles.None, out dtOffset))
    {
       DateTime myDate = dtOffset.DateTime;
       selectedDate = myDate.AddDays(+1).ToString("dd-MM-yyyy");
     }
 }
如果单击“上一步”按钮,结果将是2019年4月3日。如果再次按下上一个按钮,我得到2019年10月2日。下一个按钮也一样。根据所选日期,它将返回下一个或上一个日期


此功能在android和windows中运行良好。但是在ios中,这段代码得到了错误的结果。这是实现此功能的正确方法吗?

您可以改进代码。我创建了一个带有标签的示例以显示当前日期

在xaml中
您可以改进代码。我创建了一个带有标签的示例以显示当前日期

在xaml中

这不是我所期望的。如果我单击上一个按钮一次,我需要2019年10月3日作为输出(因为当前日期是2019年10月4日)。如果我再次点击上一个按钮,我需要02-10-2019作为输出,同样,下一次点击01-10-2019作为输出。“下一步”按钮也是如此,如果单击“下一步”按钮,则需要基于当前日期的第二天。如果现在是10月1日,我需要2019年10月2日作为输出。希望你能理解。我在问题中的代码在android和UWP中工作正常,但在ios中工作不好。检查我的更新答案,它在ios上工作正常,你可以进行测试。这只给出昨天的日期和明天的日期,对吗?不,为什么不先测试一下?通过快速查看,我明白这一点,谢谢你的回答。这不是我所期望的。如果我单击上一个按钮一次,我需要2019年10月3日作为输出(因为当前日期是2019年10月4日)。如果我再次点击上一个按钮,我需要02-10-2019作为输出,同样,下一次点击01-10-2019作为输出。“下一步”按钮也是如此,如果单击“下一步”按钮,则需要基于当前日期的第二天。如果现在是10月1日,我需要2019年10月2日作为输出。希望你能理解。我在问题中的代码在android和UWP中工作正常,但在ios中工作不好。检查我的更新答案,它在ios上工作正常,你可以进行测试。这只给出昨天和明天的日期,对吗?不,为什么不先测试一下?通过快速查看,我明白了,谢谢你的回答。
<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Orientation="Horizontal">
       
    <Button Text="Preview" Clicked="PrevButtonClicked"/>

    <Label x:Name="dateLabel" TextColor="Red" WidthRequest="100"/>

    <Button Text="Next"  Clicked="NextButtonClicked"/>

</StackLayout>
public partial class MainPage : ContentPage
{
  int year, month, day;

  public MainPage()
  {
     InitializeComponent();

     dateLabel.Text = DateTime.Now.ToString("dd-MM-yyyy");

     year = DateTime.Now.Year;
     month = DateTime.Now.Month;
     day= DateTime.Now.Day;
  }

  private void Button_Clicked(object sender, EventArgs e)
  {
    DateTime nowDate = new DateTime(year, month, day);

    var previewDate = nowDate.AddDays(-1);

    dateLabel.Text = previewDate.ToString("dd-MM-yyyy");

    year = previewDate.Year;
    month = previewDate.Month;
    day = previewDate.Day;
  }

  private void Button_Clicked_1(object sender, EventArgs e)
  {
     DateTime nowDate = new DateTime(year, month, day);

     var nextDate = nowDate.AddDays(+1);

     dateLabel.Text = nextDate.ToString("dd-MM-yyyy");

     year = nextDate.Year;
     month = nextDate.Month;
     day = nextDate.Day;
  }
}