java编程打印大学四年的生日都是星期几?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程打印大学四年的生日都是星期几?相关的知识,希望对你有一定的参考价值。
下面是一个简单的 Java 程序示例,用于打印指定时间段内每个日期是星期几:```java
import java.time.DayOfWeek;
import java.time.LocalDate;
public class BirthdayPrint
public static void main(String[] args)
int startYear = 2022; // 开始年份
int endYear = 2025; // 结束年份
for (int year = startYear; year <= endYear; year++)
for (int month = 1; month <= 12; month++)
for (int day = 1; day <= 31; day++) // 最大值为 31,超出月份天数的部分会自动忽略
try
LocalDate date = LocalDate.of(year, month, day);
DayOfWeek dow = date.getDayOfWeek();
System.out.println(date + " is " + dow);
catch (Exception e) // 如果日期非法,则会抛出异常,这里捕获并忽略即可
```
此程序使用 Java 8 中的 `LocalDate` 类和 `DayOfWeek` 枚举类型,循环遍历指定时间范围内的所有日期,并通过 `getDayOfWeek()` 方法获取每个日期对应的星期几。最后将所有结果输出到控制台。
需要注意的是,在本程序中,我们没有做任何错误处理,例如输入的起始和结束年份必须合法、超出日期范围的日期会被自动忽略等等情况需要根据实际需求进行适当处理。 参考技术A public static void main(String[] args)
for (int i = 0; i < 4; i++)
String datestr = "202"+(i+3)+"-01-01";
Date date = null;
if (datestr != null)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
date = sdf.parse(datestr);
catch (ParseException e)
e.printStackTrace();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
switch (cal.get(Calendar.DAY_OF_WEEK))
case 1:
System.out.println(datestr + "周日");
break;
case 2:
System.out.println(datestr + "周一");
break;
case 3:
System.out.println(datestr + "周二");
break;
case 4:
System.out.println(datestr + "周三");
break;
case 5:
System.out.println(datestr + "周四");
break;
case 6:
System.out.println(datestr + "周五");
break;
case 7:
System.out.println(datestr + "周六");
break;
C++,,,课堂作业求助,,,编写一个程序,,计算自己的生日距离今天多少天,,是星期几
编写一个程序,,计算自己的生日距离今天多少天,,是星期几
参考技术A #include <time.h>tm t;
_getsystime(&t);
// struct tm
// int tm_sec; /* seconds after the minute - [0,59] */
// int tm_min; /* minutes after the hour - [0,59] */
// int tm_hour; /* hours since midnight - [0,23] */
// int tm_mday; /* day of the month - [1,31] */
// int tm_mon; /* months since January - [0,11] */
// int tm_year; /* years since 1900 */
// int tm_wday; /* days since Sunday - [0,6] */
// int tm_yday; /* days since January 1 - [0,365] */
// int tm_isdst; /* daylight savings time flag */
// ; 参考技术B #include"iostream.h"
void main()
bool m;
int date[12]=31,28,31,30,31,30,31,31,30,31,30,31;
int year1,mon1,day1;
int year,mon,day,weekend;
int i,total=0;
loop:
cout<<"输入你的出生日期(年月日):";
cin>>year1>>mon1>>day1;
cout<<"输入今天的日期:";
cin>>year>>mon>>day;
cout<<"今天是星期几:";
cin>>weekend;
if(year%4==0)
if(year%100!=0||year%400==0) date[1]=29;m=true;
//判断是否是闰年。
try
if(year<year1) throw year;
if(mon<1||mon>12||mon1<1||mon1>12) throw mon;
if(day1>date[mon1-1]||day>date[mon-1]) throw day;
catch(int)
cout<<"数据Error!"<<endl;
cout<<"**********************"<<endl;
goto loop;
//检验输入数据是否正确。
if(mon<=mon1)
for(i=mon;i<mon1;i++) total=total+date[i];
total=total+day1-day;
if(total<0)
if(m==true) total=366+total;
else total=365+total;
else
for(i=mon1;i<mon;i++) total=total+date[i];
total=total+day-day1;
if(m==true) total=366-total;
else total=365-total;
cout<<"你的生日距今还有:"<<total<<"天"<<endl;
weekend=(weekend+total%7)%7;
if(weekend==0) cout<<"星期天"<<endl;
else
cout<<"星期:"<<weekend<<endl;
参考技术C /*
date.h
*/
/*
定义和实现日期类
Microsoft Visual C++ .NET编译通过
*/
#include "time.h"
#include "iostream"
using namespace std;
class date
public:
date();
date(int year,int month,int day);
int ydays() const;
int get_day() const;
int get_month() const;
int get_year() const;
int get_week() const;
void set_day(int day);
void set_month(int month);
void set_year(int year);
static bool isLeapYear(int year);
static unsigned long int count_days(const date& begin,const date& end);
private:
int m_year;
int m_month;
int m_day;
;
date::date()
//默认构造函数,用当前时间初始化
time_t temp;
time(&temp);
tm *_time=localtime(&temp);
m_year=_time->tm_year+1900;
m_month=_time->tm_mon;
m_day=_time->tm_mday;
date::date(int year,int month,int day):m_year(year),m_month(month-1),m_day(day)
int date::get_day() const
return m_day;
int date::get_month() const
return m_month;
int date::get_year() const
return m_year;
void date::set_day(int day)
m_day=day;
void date::set_month(int month)
m_month=month;
void date::set_year(int year)
m_year=year;
int date::ydays() const
//计算从1月1号到当前日期的天数
int total=m_day;
int mt[]=31,28+isLeapYear(m_year),31,30,31,30,31,31,30,31,30,31;
for (int i=0;i<m_month;i++)
total+=mt[i];
return total;
bool date::isLeapYear(int year)
//判断闰年
if((year % 400 == 0)||(year % 4 == 0)&&(year % 100 != 0))
return true;
return false;
unsigned long int date::count_days(const date& begin,const date& end)//to-do
//计算两个日期间隔的时间
int total=0;
if (begin.get_year()==end.get_year())
total+=(end.ydays()-begin.ydays());
else
total+=(365-begin.ydays()+end.ydays()+isLeapYear(begin.get_year()));
for (int i=begin.get_year()+1;i<end.get_year();i++)
total+=(365+isLeapYear(i));
return total;
///////////////////////////////////////////////////////////////
/*
test.cpp
*/
/*
调用date类实现了题目要求的操作
星期的计算以公元1年1月1日星期一为参照点
Microsoft Visual C++ .NET编译通过
*/
#include "stdafx.h"
#include "iostream"
#include "date.h"
using namespace std;
/*
http://zhidao.baidu.com/question/42587847.html
计算自己的生日距离今天多少天,,是星期几
*/
int _tmain(int argc, _TCHAR* argv[])
void print(const date& t);//日期的输出
int week(const date& t);//星期的计算
date now;//当前日期
//在此换成个人生日
date birthday(2007,12,22);
//输出
cout<<"从";
print(birthday);
cout<<"[星期"<<week(birthday)<<"]\n";
cout<<"到";
print(now);
cout<<"[星期"<<week(now)<<"]\n";
cout<<"一共是";
cout<<date::count_days(birthday,now)<<"天.\n";
return 0;
void print(const date& t)
cout<<t.get_year()<<"年"<<t.get_month()+1<<"月"<<t.get_day()<<"日";
int week(const date& t)
//以公元1月1日(星期1)为参照点
unsigned long int days=0;
int week=0;
date ref(1,1,1);
days=date::count_days(ref,t);
week=days%7+1;
return week;
本回答被提问者采纳 参考技术D 这个好像直接就有个api函数的,
以上是关于java编程打印大学四年的生日都是星期几?的主要内容,如果未能解决你的问题,请参考以下文章