Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从签署之日起计算服务的年度使用量_C#_Mysql_Date_Datetime - Fatal编程技术网

C# 从签署之日起计算服务的年度使用量

C# 从签署之日起计算服务的年度使用量,c#,mysql,date,datetime,C#,Mysql,Date,Datetime,我需要计算从签署之日起每年的服务使用量。比如: select Count(*) from TABLENAME where Date >= MYDATE MYDATE需要从订阅日期开始计算,我需要从订阅中获取参考当前日期的最后一年日期 一些例子: 认购日期:2007-06-29 如果当前日期为:2015-04-29,则日期为:2014-06-29 如果当前日期为:2015-06-29,则日期为:2015-06-29 如果当前日期为:2015-06-29,则日期为:2015-06-29 我使

我需要计算从签署之日起每年的服务使用量。比如:

select Count(*) from TABLENAME where Date >= MYDATE
MYDATE
需要从订阅日期开始计算,我需要从订阅中获取参考当前日期的最后一年日期

一些例子:

认购日期:2007-06-29

如果当前日期为:2015-04-29,则日期为:2014-06-29

如果当前日期为:2015-06-29,则日期为:2015-06-29

如果当前日期为:2015-06-29,则日期为:2015-06-29

我使用c#计算日期,但它在闰年崩溃:

var date = new DateTime(DateTime.Now.Year, subscriptionDate.Month, subscriptionDate.Day);
if (DateTime.Now.Date < date)
{
    date = date.AddYears(-1);
}
var date=new DateTime(DateTime.Now.Year,subscriptionDate.Month,subscriptionDate.Day);
if(DateTime.Now.Date
我想知道在c#或mysql中是否有更聪明/更好的方法来处理leapyear

---更新----


使用mysql
DATE\u SUB
函数

DATE_SUB(Date, INTERVAL 1 YEAR)

使用mysql
DATE\u SUB
函数

DATE_SUB(Date, INTERVAL 1 YEAR)

使用mysql
DATE\u SUB
函数

DATE_SUB(Date, INTERVAL 1 YEAR)

使用mysql
DATE\u SUB
函数

DATE_SUB(Date, INTERVAL 1 YEAR)
好吧,我会自己做的:

对于.NET来说,这会稍微困难一些,但我仍然会选择增加年数的方法(并让它在2月29日进行截断):

//只调用此*一次*-否则可能会得到不一致的结果
DateTime today=DateTime.today;
int years=今天.Year-订阅日期.Year;
候选日期时间=subscriptionDate.AddYears(年);
//我们可能过了头,在这种情况下,年数会减少。
返回候选者好吧,我会自己做:

对于.NET来说,这会稍微困难一些,但我仍然会选择增加年数的方法(并让它在2月29日进行截断):

//只调用此*一次*-否则可能会得到不一致的结果
DateTime today=DateTime.today;
int years=今天.Year-订阅日期.Year;
候选日期时间=subscriptionDate.AddYears(年);
//我们可能过了头,在这种情况下,年数会减少。
返回候选者好吧,我会自己做:

对于.NET来说,这会稍微困难一些,但我仍然会选择增加年数的方法(并让它在2月29日进行截断):

//只调用此*一次*-否则可能会得到不一致的结果
DateTime today=DateTime.today;
int years=今天.Year-订阅日期.Year;
候选日期时间=subscriptionDate.AddYears(年);
//我们可能过了头,在这种情况下,年数会减少。
返回候选者好吧,我会自己做:

对于.NET来说,这会稍微困难一些,但我仍然会选择增加年数的方法(并让它在2月29日进行截断):

//只调用此*一次*-否则可能会得到不一致的结果
DateTime today=DateTime.today;
int years=今天.Year-订阅日期.Year;
候选日期时间=subscriptionDate.AddYears(年);
//我们可能过了头,在这种情况下,年数会减少。
返回候选人感谢和

我找到了一个能很好地处理闰年问题的解决方案:

int year = DateTime.Now.DayOfYear >= subscriptionDate.DayOfYear ? 
             DateTime.Now.Year : DateTime.Now.Year - 1;
var date = new DateTime(year, 1, 1).AddDays(subscriptionDate.DayOfYear - 1);
--------更新------

我在这里留下这个答案作为参考,但它不能很好地处理闰年,所以不要使用它

感谢和

我找到了一个能很好地处理闰年问题的解决方案:

int year = DateTime.Now.DayOfYear >= subscriptionDate.DayOfYear ? 
             DateTime.Now.Year : DateTime.Now.Year - 1;
var date = new DateTime(year, 1, 1).AddDays(subscriptionDate.DayOfYear - 1);
--------更新------

我在这里留下这个答案作为参考,但它不能很好地处理闰年,所以不要使用它

感谢和

我找到了一个能很好地处理闰年问题的解决方案:

int year = DateTime.Now.DayOfYear >= subscriptionDate.DayOfYear ? 
             DateTime.Now.Year : DateTime.Now.Year - 1;
var date = new DateTime(year, 1, 1).AddDays(subscriptionDate.DayOfYear - 1);
--------更新------

我在这里留下这个答案作为参考,但它不能很好地处理闰年,所以不要使用它

感谢和

我找到了一个能很好地处理闰年问题的解决方案:

int year = DateTime.Now.DayOfYear >= subscriptionDate.DayOfYear ? 
             DateTime.Now.Year : DateTime.Now.Year - 1;
var date = new DateTime(year, 1, 1).AddDays(subscriptionDate.DayOfYear - 1);
--------更新------



我在这里留下这个答案作为参考,但它不能很好地处理闰年,所以不要使用它

如果他们在2012年2月29日订阅,你会怎么做?另外,“我需要从订阅中获取上一年的日期,参考当前日期”我不清楚。。。如果你能举出一些你想做的事情的例子,那将非常有帮助。@JonSkeet关于2月29日的观点很好。我知道我不清楚。对不起,我的英语不好,我要补充一些example@JonSkeet增加了一个例子为什么365天不打折?还是366?那么,你可以避免像2013年2月29日这样的假日子,如果他们在2012年2月29日订阅,你会怎么做?而且,“我需要从订阅中获取上一年的日期,参考当前日期”我不清楚。。。如果你能举出一些你想做的事情的例子,那将非常有帮助。@JonSkeet关于2月29日的观点很好。我知道我不清楚。对不起,我的英语不好,我要补充一些example@JonSkeet增加了一个例子为什么365天不打折?还是366?那么,你可以避免像2013年2月29日这样的假日子,如果他们在2012年2月29日订阅,你会怎么做?而且,“我需要从订阅中获取上一年的日期,参考当前日期”我不清楚。。。如果你能举出一些你想做的事情的例子,那将非常有帮助。@JonSkeet关于2月29日的观点很好。我知道我不清楚。对不起,我的英语不好,我要补充一些example@JonSkeet增加了一个例子为什么365天不打折?还是366?那么,你可以避免像2013年2月29日这样的假日子,如果他们在2012年2月29日订阅,你会怎么做?而且,“我需要从订阅中获取上一年的日期,参考当前日期”我不清楚。。。如果你能举出一些你想做的事情的例子,那将非常有帮助。@JonSkeet关于2月29日的观点很好。我知道我不清楚。对不起,我的英语不好,我要补充一些example@JonSkeet增加了一个例子为什么365天不打折?还是366?那么你就可以避免像2013年2月29日这样的假日子,我不知道野田佳彦的时间。漂亮的图书馆。谢谢你的建议,也许我找到了一个更简单的解决方案:w