【问题标题】:Birthday Reminder生日提醒
【发布时间】:2010-07-21 08:34:55
【问题描述】:

我已经实现了一个用于用户生日提醒的 Windows 服务。 在午夜,该服务会向在该特定日子过生日的人发送邮件。这适用于印度的用户...

现在我的要求是为世界上所有用户提供该服务... 那么我应该在该服务中增强什么...? 因为印度时间与其他国家的时间不同... 如果我按照印度时间在午夜启动该服务……在印度,午夜可能意味着其他国家/地区的时间不同…… 请给我一个解决方案。

【问题讨论】:

  • 为什么人们需要提醒他们今天是他们的生日?真是可惜了
  • 我反射性地点击了这个问题,心想:“什么?我现在忘记了谁的生日?”

标签: c#


【解决方案1】:

最好将时间保持在 UTC。在这种情况下,您可以根据需要将时间转换回区域时间。

【讨论】:

  • 嗨...谢谢您的帮助,您能告诉我如何保持 UTC 时间以及如何将时间转换为区域时间..
【解决方案2】:

在标签上显示生日提醒

    DateTime birthday = Convert.ToDateTime("1991/12/24");
    int years = DateTime.Now.Year - birthday.Year;
    birthday = birthday.AddYears(years);
    DateTime check = DateTime.Now.AddDays(7);
    if ((birthday > DateTime.Now) && (birthday < check))
    {
        lbbirthday.Text = ("This week is your birthday !!!");
    }

更多详情可以阅读show Birthday reminder in asp.net c#

【讨论】:

    【解决方案3】:

    您将需要存储用户的时区偏移量并将其添加/减去您的本地时间,以了解何时触发电子邮件...

    但老实说,如果电子邮件迟到或早到了几个小时,用户真的会关心吗,基本上它仍然是大致同一天..

    【讨论】:

    • 嗨 thnakx.. 但你能告诉我如何存储用户时区偏移量..?
    【解决方案4】:

    您可以查找例如here 进行时区转换。但是你怎么知道这个人在哪里?它是否存储在某个地方,如果是,您检查它在哪个时区是该位置并根据它发送电子邮件。

    【讨论】:

      【解决方案5】:

      伙计,你在和程序员说话。 99.9% 的人知道世界上有不同的时区。 如果您有关于用户位置的信息,您可以使用此问题中的信息来证明用户居住在哪个时区,并在时区的午夜时间发送消息: Web service - current time zone for a city?

      【讨论】:

        猜你喜欢
        • 2011-01-14
        • 2015-10-11
        • 1970-01-01
        • 1970-01-01
        • 2020-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多