|
gareth111 wrote: betweenEnd.AddHours(24);
Will not work because you'd need to do something like:
var betweenStart = DateTime.Now.Date;
var betweenEnd = betweenStart.AddDays(1); Because DateTime is a struct then you have to assign it back to the same variable (also note the DateTime.Now.Date property which returns the date part only, thus elimintating your extra bit of code).
|
|
|
|
|
Ed.Poore wrote: Because DateTime is a struct then you have to assign it back to the same variable
Not quite. It is because it is immutable that you have to assign it back. Structs, by their nature, happen to work better when they are immutable, but they are not required to be.
|
|
|
|
|
Fussy, fussy, that wasn't a bad reply for someone who just woke up after the first night of serious drinking in 4 years.
|
|
|
|
|
Ed.Poore wrote: that wasn't a bad reply for someone who just woke up after the first night of serious drinking in 4 years
Pah! I've not drunk in just over 8 years now. I wonder what I'd be like if I decided to start again. Probably on the floor after half a beer.
|
|
|
|
|
I was suprised by how well I held my drink considering that I've never drunk heavily and have had a complete halt so to speak while I had my treatment. Managed better than those that drink regularly which is what I was implying more than anything.
|
|
|
|
|
Try something like:
DateTime startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
DateTime endDate = startDate.AddDays(1.0).AddSeconds(-1.0); // include 11:59:59, not so accurate.
.. if you want to use >= and <= for the range comparison, else
DateTime startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
DateTime endDate = startDate.AddDays(1.0);
for >= and < range comparison.
|
|
|
|
|
darkelv,
Thank you. Works a treat.
Regards,
Gareth.
|
|
|
|
|
A word of caution - using DateTime.Now more than once in a statement is dangerous since its value changes each time you access the property. It's safer to do:
DateTime now = DateTime.Now;
int foo = now.Something + now.SomethingElse + ...;
/ravi
|
|
|
|
|
If you're still using the first betweenEnd line then it's not going to work as that's where your error is occuring. Try this:
DateTime tempDate = DateTime.Now.AddDays(1);
DateTime betweenEnd = new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, 0, 0, 0, 0);
|
|
|
|
|
Why are you doing this in C#? You're retrieving data from the database so why not use SQL to do this instead? That would seem to be a much better way to accomplish this.
|
|
|
|
|
Pete O'Hanlon,
Its designed to work on Access, and your suggestion would need stored procs which Access doesn't support, correct me if i am wrong though!
Regards,
Gareth.
|
|
|
|
|
gareth111 wrote: your suggestion would need stored procs
No - it just needs SQL, which access supports.
|
|
|
|
|
I don't understand why noone yet has suggested the very simplest solution...?
DateTime betweenStart = DateTime.Today;
DateTime betweenEnd = betweenStart.AddDays(1);
Note: To get the correct result you should not use the between operator in SQL with these dates. The right way to it is to make the condition for betweenEnd non inclusive:
where someDate >= @BetweenStart and someDate < @BetweenEnd
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
gareth111 wrote: The only thing i do with the DateTimes after creating them is to do a ToString().
If you're passing the values to an SQL command you would do well to use Parmeters of type DateTime.
|
|
|
|
|
<node label="Holiday Destinations" pic="imgs/homepage.jpg" attached="0" text="ny" />;
if xml file is in this format then how can i get a lable name as a "holiday destinations on tree node?
if xml is in the form < text> themn tex will be a lable of tree node.in this format.
how can i get it?
|
|
|
|
|
Using method
System.Diagnostics.Process.GetProcessesByName(processescname)
, my program will not work anymore once someone has changed their name.
is there any way to solve this problem?
Thanks for advandce
|
|
|
|
|
With this amount of information, there's no way to solve the problem.
If you try to identify a process by its name and the name is changed there's no way of knowing if it's still the same program.
Why do you need to know whether a process with a given name exists?
Wouldn't it be better to use a mutex to flag the active state of an application?
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
How can someone change a process name?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
by changing the EXE's file name (while it is not running).
Probably relevant only if two programs need to communicate or synchronize something;
a uniquely named resource (mutex) is the way to go. Process names are bad: someone can create
a totally different app, give it the same file name in another folder, so it would get the
same process name.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Luc Pattyn wrote: by changing the EXE's file name (while it is not running).
Well, a process, you know, is a running executable , hence my question.
Luc Pattyn wrote: Probably relevant only if two programs need to communicate or synchronize something;
a uniquely named resource (mutex) is the way to go.
Provided the above scenarion holds (I doubt about, but I'm a malicious guy), also a registered window message may do the trick.
Luc Pattyn wrote: Process names are bad
Please be kind on (process) names. Last time someone found user-friendly names bad, he founded an incomprehensible technology full of funny 128 bit identifiers, fancy abstract classes and obscure registry entries.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Most of us have a first name, a last name, and when it really matters a unique and
rather long identification number, such as a social security number.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
thank all
Just consider this code:
<br />
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName(procname);<br />
if (myProcesses.Length == 0)<br />
Console.WriteLine("Nothing.");<br />
else<br />
Console.WriteLine("Is running.");<br />
Process's name can be changed easily, just like Luc Patyn said. Process's ID changes each time process begin to run in our system.
Just wonder can I get it by what?
|
|
|
|
|
Seems like you have two apps and are asking about interprocess communication. Then please
start by telling more abbout the situation:
- what is it all about?
- how did the target app start? can you modify its code if need be?
- what it is your controlling app wants to do to that process? any particular requirements,
as to speed, resources used, reentrancy, ...?
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
thanks
all is about I want to check whether one process is running or not.
My check was not correct if someone renamed the EXE file which uses to open that process.
So I decide to check it out by comparing size of main module of each process are running and size the EXE file:
<br />
using System;<br />
using System.Diagnostics;<br />
using System.IO;<br />
<br />
...<br />
<br />
public Process[] getProcessesByExeSize()<br />
{<br />
Process[] myProcesses = null;<br />
int i = -1;<br />
Process[] allproc = Process.GetProcesses();<br />
foreach (Process p in allproc)<br />
{<br />
string s = p.MainModule.FileName;
FileInfo finfo = new FileInfo(s);
long fileinbytes = finfo.Length;<br />
if (fileinbytes == 12345)
{<br />
myProcesses[i+1] = p;<br />
i++;<br />
} <br />
}<br />
return myProcesses;<br />
}<br />
I tried to replace "\" by "\\" or add @ in front of s but not success.
modified on Thursday, January 31, 2008 11:21:03 PM
|
|
|
|