新手求教C语言

yy19850322 2010-11-14 02:05:51
输出出生年月日时,如何实现1.年份不能大于当前年月;2,大月小月2月天数判断;
跪求代码,谢谢各位啦
...全文
211 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq850609901 2010-11-21
  • 打赏
  • 举报
回复
讨厌“跪求代码”的。干什么你就“跪求”,一点尊严都没有
lijianbin9 2010-11-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 honryzz 的回复:]

一个简单的...zzzzzz

C/C++ code

#include <stdio.h>
#include <time.h>

int GetCurrentYear()
{
struct tm *currDT;
time_t now;

time(&now);
currDT = localtime(&now);

……
[/Quote]不错啊
fahab0b 2010-11-21
  • 打赏
  • 举报
回复
还是自己写吧,不然没有任何的帮助的!!
heisenbergg 2010-11-20
  • 打赏
  • 举报
回复
你自己先弄个代码麻,下面别人会帮你指出问题的
yuqingbingo 2010-11-17
  • 打赏
  • 举报
回复
高手不少!!代码也太复杂了某位仁兄!
djvfe 2010-11-15
  • 打赏
  • 举报
回复
作业题,杯具
赵4老师 2010-11-15
  • 打赏
  • 举报
回复
COleDateTime
COleDateTimeSpan
xspace_time 2010-11-15
  • 打赏
  • 举报
回复
if(getinputtime(char *p)<=getsystemtime.year)
寂寞的泡面 2010-11-15
  • 打赏
  • 举报
回复
建议楼主先简单的写出设计思想,再问大家代码怎么写。
qq149850508 2010-11-15
  • 打赏
  • 举报
回复
第一个days是if里面的 第二个是外面的 相当于else.
cys_wyd 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 angle_xiaoqing 的回复:]
给你个简单的
int days(int year)
{
if((year%4 == 0&&year%100 != 0)||(year%400 == 0))
days = 28;
days = 29;
return days;
}
其返回值为不同年的二月的天数
[/Quote]


days = 28;
days = 29;

这个没有看懂!
xuhai20092009 2010-11-15
  • 打赏
  • 举报
回复
学习了!!!
tttyulong 2010-11-15
  • 打赏
  • 举报
回复
lz 用的是那个教材 好象是书上的立体样?怪哉!
angle_xiaoqing 2010-11-15
  • 打赏
  • 举报
回复
给你个简单的
int days(int year)
{
if((year%4 == 0&&year%100 != 0)||(year%400 == 0))
days = 28;
days = 29;
return days;
}
其返回值为不同年的二月的天数
manytao 2010-11-14
  • 打赏
  • 举报
回复
..........lz自己写。
重庆-老白 2010-11-14
  • 打赏
  • 举报
回复
作业帖子就把分搞搞一点额
wasx1 2010-11-14
  • 打赏
  • 举报
回复
可以自己先尝试写一下,大家帮你改。
不然对你也几乎没什么帮助啊
HonryZZ 2010-11-14
  • 打赏
  • 举报
回复
一个简单的...zzzzzz


#include <stdio.h>
#include <time.h>

int GetCurrentYear()
{
struct tm *currDT;
time_t now;

time(&now);
currDT = localtime(&now);

printf("%d\n", currDT->tm_year + 1900);

return (currDT->tm_year + 1900);
}

int GetCurrentMonth()
{
struct tm *currDT;
time_t now;

time(&now);
currDT = localtime(&now);

printf("%d\n", currDT->tm_mon + 1);

return (currDT->tm_mon + 1);
}

int GetCurrentDay()
{
struct tm *currDT;
time_t now;

time(&now);
currDT = localtime(&now);

printf("%d\n", currDT->tm_mday);

return (currDT->tm_mday);
}


int CheckLeapYear(int year)
{
int isLeapYear = 0;

isLeapYear = !(year % (year % 100 ? 4 : 400));

return isLeapYear;
}

int CheckYearValid(int currYear, int currMonth, int currDay, int birthYear, int birthMonth, int birthDay)
{
if (birthYear <= 0)
{
printf(".....\n");
return -1;
}

if (birthYear > currYear)
{
printf("birthYear(%d) can not be later than %d\n", birthYear, currYear);
return -2;
}

return 0;

}

int CheckMonthValid(int currYear, int currMonth, int currDay, int birthYear, int birthMonth, int birthDay)
{
if ((birthMonth <= 0) || (birthMonth > 12))
{
printf("month(%d) is invalid, it should range from 1 to 12\n", birthMonth);
return -1;
}
if ((currYear == birthYear) && (currMonth < birthMonth))
{
printf("birthMonth(%d) can not be later than %d, when birthYear is %d\n", birthMonth, currMonth, birthYear);
return -2;
}

return 0;
}

int CheckDayValid(int currYear, int currMonth, int currDay, int birthYear, int birthMonth, int birthDay)
{
int MonthDays[] = {0xff, 31, 0xff, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0xff};

if ((birthDay <= 0) || (birthDay > 31 ))
{
printf("Invalid day : %d\n", birthDay);
return -1;
}

if (birthMonth == 2)
{
if (CheckLeapYear(birthYear))
{
if (birthDay >= 30)
{
printf("Invalid day(%d), %d is a leapYear and Feb. should smaller than 30\n", birthDay, birthYear);
return -2;
}
}
else
{
if (birthDay >= 29)
{
printf("Invalid day(%d), %d is not a leapYear and Feb. should smaller than 29\n", birthDay, birthYear);
return -3;
}
}
}
else
{
if (birthDay > MonthDays[birthMonth])
{
printf("Invalid day(%d) when month is %d\n", birthDay, birthMonth);
return -4;
}
}

if ((currYear == birthYear) && (currMonth == birthMonth) && (currDay < birthDay))
{
printf("birthDay(%d) can not be later than %d, when birthYear is %d and birthMonth is %d\n", birthDay, currDay, birthYear, birthMonth);
return -5;
}

return 0;
}

int main()
{
int curr_year, curr_month, curr_day;
int birth_year, birth_month, birth_day;
int flag = 0;

curr_year = GetCurrentYear();
curr_month = GetCurrentMonth();
curr_day = GetCurrentDay();
do
{
printf("your birthday ? input as year-month-day:\n");
scanf("%d-%d-%d", &birth_year, &birth_month, &birth_day);
flag = 0;
if (CheckYearValid(curr_year, curr_month, curr_day, birth_year, birth_month, birth_day) < 0)
{
flag = 1;
continue;
}
if (CheckMonthValid(curr_year, curr_month, curr_day, birth_year, birth_month, birth_day) < 0)
{
flag = 1;
continue;
}
if (CheckDayValid(curr_year, curr_month, curr_day, birth_year, birth_month, birth_day) < 0)
{
flag = 1;
continue;
}
printf("... %d-%d-%d...\n", birth_year, birth_month, birth_day);
}while (flag);
return 0;
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧