Some functions and codes about date
2010-11-04 17:25
411 查看
#include <stdio.h>
typedef struct _DATES
{
int year;
int month;
int day;
}DATES;
//获取某月的天数
int GetDaysOfMonth(int year, int month)
{
bool judge = false;
int daysOfMonth[12] = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
{
judge = true;
}
if (month == 2)
{
return judge ? 29:28;
}
else
{
return daysOfMonth[month - 1];
}
}
//获取指定的两个月份之间的天数
int GetDaysBetweenMonth(DATES start, DATES end)
{
int daysStart, daysEnd;
int subMonth;
int sum = 0;
subMonth = end.month - start.month;
daysStart = GetDaysOfMonth(start.year, start.month);
if (subMonth == 0)
{
return (end.day - start.day);
}
if (subMonth < 0)
{
return (daysStart - start.day);
}
else
{
daysEnd = end.day;
sum = daysStart - start.day + daysEnd;
for (int m=1; m<=subMonth-1; m++)
{
sum += GetDaysOfMonth(start.year, start.month + m);
}
return sum;
}
}
void main()
{
DATES dateStart, dateEnd;
int days;
dateStart.year = 2010;
dateEnd.year = 2010;
printf("Please input the month,day:/n");
scanf("%d,%d", &dateStart.month, &dateStart.day);
printf("Input the end date:/n");
scanf("%d,%d",&dateEnd.month, &dateEnd.day);
days = GetDaysBetweenMonth(dateStart, dateEnd);
printf("The days is %d/n", days);
}
typedef struct _DATES
{
int year;
int month;
int day;
}DATES;
//获取某月的天数
int GetDaysOfMonth(int year, int month)
{
bool judge = false;
int daysOfMonth[12] = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
{
judge = true;
}
if (month == 2)
{
return judge ? 29:28;
}
else
{
return daysOfMonth[month - 1];
}
}
//获取指定的两个月份之间的天数
int GetDaysBetweenMonth(DATES start, DATES end)
{
int daysStart, daysEnd;
int subMonth;
int sum = 0;
subMonth = end.month - start.month;
daysStart = GetDaysOfMonth(start.year, start.month);
if (subMonth == 0)
{
return (end.day - start.day);
}
if (subMonth < 0)
{
return (daysStart - start.day);
}
else
{
daysEnd = end.day;
sum = daysStart - start.day + daysEnd;
for (int m=1; m<=subMonth-1; m++)
{
sum += GetDaysOfMonth(start.year, start.month + m);
}
return sum;
}
}
void main()
{
DATES dateStart, dateEnd;
int days;
dateStart.year = 2010;
dateEnd.year = 2010;
printf("Please input the month,day:/n");
scanf("%d,%d", &dateStart.month, &dateStart.day);
printf("Input the end date:/n");
scanf("%d,%d",&dateEnd.month, &dateEnd.day);
days = GetDaysBetweenMonth(dateStart, dateEnd);
printf("The days is %d/n", days);
}
相关文章推荐
- Some tips about Abstract base classes and pure virtual functions
- Some interesting facts about static member functions in C++
- Some knowledge about why we need to new and delete everything in one module
- some questions and tips about java
- An article about Equals and GetHashCode functions in C#
- some articles about linear-Z buffer and W-buffer
- some functions about judge the String type
- MM--A List of Tables and Tcodes about MM
- Mysql:函数之三: date and time functions
- [Javascript] Some very simple functions for Word and Excel handling
- MM--A List of Tables and Tcodes about MM
- MM--A List of Tables and Tcodes about MM
- some notes about ADDM and AWR
- introduce HDL and give some examples about the Verilog language
- MM--A List of Tables and Tcodes about MM
- Date-time Conversion Functions to and from Character
- MM--A List of Tables and Tcodes about MM
- MaxPooling的作用 and some tips about CNN
- Mysql:函数之三: date and time functions:重要的格式化函数
- 整理——Some basic questions about caffe and deep learning